xgplayer 2.31.2 → 2.31.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/core_player.js +1 -1
- package/browser/core_player.js.map +1 -1
- package/browser/index.js +1 -1
- package/browser/index.js.map +1 -1
- package/browser/simple_player.js +1 -1
- package/browser/simple_player.js.map +1 -1
- package/dist/core_player.js +4032 -1
- package/dist/core_player.js.map +1 -1
- package/dist/index.js +13672 -9
- package/dist/index.js.map +1 -1
- package/dist/simple_player.js +5410 -1
- package/dist/simple_player.js.map +1 -1
- package/es/controls/errorRetry.js +1 -1
- package/es/controls/nativeTextTrack.js +1 -1
- package/es/core_player.js +1 -1
- package/es/core_player.js.map +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/simple_player.js +1 -1
- package/es/simple_player.js.map +1 -1
- package/package.json +1 -1
- package/version.json +1 -1
- package/webpack.config.js +1 -1
package/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://xgplayer/webpack/universalModuleDefinition","webpack://xgplayer/webpack/bootstrap","webpack://xgplayer/./src/utils/util.js","webpack://xgplayer/./node_modules/css-loader/lib/css-base.js","webpack://xgplayer/./node_modules/style-loader/lib/addStyles.js","webpack://xgplayer/./src/utils/sniffer.js","webpack://xgplayer/./src/error.js","webpack://xgplayer/./src/proxy.js","webpack://xgplayer/./src/player.js","webpack://xgplayer/./node_modules/es5-ext/object/is-value.js","webpack://xgplayer/./src/utils/xgplayerTimeRange.js","webpack://xgplayer/./src/skin/controls/i18n.js","webpack://xgplayer/./node_modules/type/value/is.js","webpack://xgplayer/./node_modules/event-emitter/index.js","webpack://xgplayer/./node_modules/event-emitter/all-off.js","webpack://xgplayer/./src/controls/mobile.js","webpack://xgplayer/./src/controls/pc.js","webpack://xgplayer/./src/controls/start.js","webpack://xgplayer/./src/skin/controls/start.js","webpack://xgplayer/./node_modules/d/index.js","webpack://xgplayer/./node_modules/type/plain-function/is.js","webpack://xgplayer/./node_modules/type/function/is.js","webpack://xgplayer/./node_modules/type/prototype/is.js","webpack://xgplayer/./node_modules/type/object/is.js","webpack://xgplayer/./node_modules/es5-ext/object/assign/index.js","webpack://xgplayer/./node_modules/es5-ext/object/assign/is-implemented.js","webpack://xgplayer/./node_modules/es5-ext/object/assign/shim.js","webpack://xgplayer/./node_modules/es5-ext/object/keys/index.js","webpack://xgplayer/./node_modules/es5-ext/object/keys/is-implemented.js","webpack://xgplayer/./node_modules/es5-ext/object/keys/shim.js","webpack://xgplayer/./node_modules/es5-ext/function/noop.js","webpack://xgplayer/./node_modules/es5-ext/object/valid-value.js","webpack://xgplayer/./node_modules/es5-ext/object/normalize-options.js","webpack://xgplayer/./node_modules/es5-ext/string/#/contains/index.js","webpack://xgplayer/./node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://xgplayer/./node_modules/es5-ext/string/#/contains/shim.js","webpack://xgplayer/./node_modules/es5-ext/object/valid-callable.js","webpack://xgplayer/./node_modules/es5-ext/object/valid-object.js","webpack://xgplayer/./node_modules/es5-ext/object/is-object.js","webpack://xgplayer/./src/skin/style/index.scss?a7b1","webpack://xgplayer/./src/skin/style/index.scss","webpack://xgplayer/./node_modules/style-loader/lib/urls.js","webpack://xgplayer/./src/skin/style/controls/start.scss?7bb8","webpack://xgplayer/./src/skin/style/controls/start.scss","webpack://xgplayer/./src/controls/fullscreen.js","webpack://xgplayer/./src/controls/play.js","webpack://xgplayer/./src/controls/replay.js","webpack://xgplayer/./src/skin/controls/poster.js","webpack://xgplayer/./src/skin/controls/flex.js","webpack://xgplayer/./src/skin/controls/progress.js","webpack://xgplayer/./src/skin/controls/time.js","webpack://xgplayer/./src/skin/controls/play.js","webpack://xgplayer/./src/skin/controls/fullscreen.js","webpack://xgplayer/./src/skin/controls/loading.js","webpack://xgplayer/./src/skin/controls/replay.js","webpack://xgplayer/./src/skin/style/controls/play.scss?9632","webpack://xgplayer/./src/skin/style/controls/play.scss","webpack://xgplayer/./src/skin/style/controls/poster.scss?e9aa","webpack://xgplayer/./src/skin/style/controls/poster.scss","webpack://xgplayer/./src/skin/style/controls/placeholder.scss?a4f4","webpack://xgplayer/./src/skin/style/controls/placeholder.scss","webpack://xgplayer/./src/skin/style/controls/fullscreen.scss?1042","webpack://xgplayer/./src/skin/style/controls/fullscreen.scss","webpack://xgplayer/./src/skin/style/controls/loading.scss?ad0a","webpack://xgplayer/./src/skin/style/controls/loading.scss","webpack://xgplayer/./src/skin/style/controls/progress.scss?de9d","webpack://xgplayer/./src/skin/style/controls/progress.scss","webpack://xgplayer/./src/skin/style/controls/time.scss?a7a6","webpack://xgplayer/./src/skin/style/controls/time.scss","webpack://xgplayer/./src/skin/style/controls/replay.scss?446b","webpack://xgplayer/./src/skin/style/controls/replay.scss","webpack://xgplayer/./src/skin/style/controls/textTrack.scss?c6ad","webpack://xgplayer/./node_modules/downloadjs/download.js","webpack://xgplayer/./node_modules/draggabilly/draggabilly.js","webpack://xgplayer/./node_modules/xgplayer-subtitles/dist/index.min.js","webpack://xgplayer/./node_modules/danmu.js/dist/index.js","webpack://xgplayer/./node_modules/get-size/get-size.js","webpack://xgplayer/./node_modules/unidragger/unidragger.js","webpack://xgplayer/./node_modules/unipointer/unipointer.js","webpack://xgplayer/./node_modules/ev-emitter/ev-emitter.js","webpack://xgplayer/./src/skin/style/controls/enter.scss?879b","webpack://xgplayer/./src/skin/style/controls/enter.scss","webpack://xgplayer/./src/skin/style/controls/cssfullscreen.scss?540d","webpack://xgplayer/./src/skin/style/controls/cssfullscreen.scss","webpack://xgplayer/./src/skin/style/controls/volume.scss?4ba7","webpack://xgplayer/./src/skin/style/controls/volume.scss","webpack://xgplayer/./src/skin/style/controls/definition.scss?ee15","webpack://xgplayer/./src/skin/style/controls/definition.scss","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss?114f","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss","webpack://xgplayer/./src/skin/style/controls/download.scss?9645","webpack://xgplayer/./src/skin/style/controls/download.scss","webpack://xgplayer/(webpack)/buildin/module.js","webpack://xgplayer/./src/skin/style/controls/danmu.scss?4216","webpack://xgplayer/./src/skin/style/controls/danmu.scss","webpack://xgplayer/./src/skin/style/controls/pip.scss?444d","webpack://xgplayer/./src/skin/style/controls/pip.scss","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss?61c3","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss","webpack://xgplayer/./src/skin/style/controls/playNext.scss?f11a","webpack://xgplayer/./src/skin/style/controls/playNext.scss","webpack://xgplayer/./src/skin/style/controls/rotate.scss?2dec","webpack://xgplayer/./src/skin/style/controls/rotate.scss","webpack://xgplayer/./src/skin/style/controls/reload.scss?8b15","webpack://xgplayer/./src/skin/style/controls/reload.scss","webpack://xgplayer/./src/skin/style/controls/screenShot.scss?ac1c","webpack://xgplayer/./src/skin/style/controls/screenShot.scss","webpack://xgplayer/./src/skin/style/controls/textTrack.scss","webpack://xgplayer/./src/skin/style/controls/error.scss?0329","webpack://xgplayer/./src/skin/style/controls/error.scss","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss?0c39","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss","webpack://xgplayer/./src/skin/style/controls/airplay.scss?643b","webpack://xgplayer/./src/skin/style/controls/airplay.scss","webpack://xgplayer/./src/controls/airplay.js","webpack://xgplayer/./src/controls/cssFullscreen.js","webpack://xgplayer/./src/controls/danmu.js","webpack://xgplayer/./src/controls/definition.js","webpack://xgplayer/./src/controls/download.js","webpack://xgplayer/./src/utils/url.js","webpack://xgplayer/./src/controls/errorRetry.js","webpack://xgplayer/./src/controls/keyboard.js","webpack://xgplayer/./src/controls/localPreview.js","webpack://xgplayer/./src/controls/memoryPlay.js","webpack://xgplayer/./src/controls/miniplayer.js","webpack://xgplayer/./src/controls/pip.js","webpack://xgplayer/./src/controls/playNext.js","webpack://xgplayer/./src/controls/reload.js","webpack://xgplayer/./src/controls/rotate.js","webpack://xgplayer/./src/controls/screenShot.js","webpack://xgplayer/./src/controls/stallCheck.js","webpack://xgplayer/./src/controls/volume.js","webpack://xgplayer/./src/controls/textTrack.js","webpack://xgplayer/./src/skin/controls/enter.js","webpack://xgplayer/./src/skin/controls/cssFullscreen.js","webpack://xgplayer/./src/skin/controls/volume.js","webpack://xgplayer/./src/skin/controls/definition.js","webpack://xgplayer/./src/skin/controls/playbackRate.js","webpack://xgplayer/./src/skin/controls/localPreview.js","webpack://xgplayer/./src/skin/controls/download.js","webpack://xgplayer/./src/skin/controls/danmu.js","webpack://xgplayer/./src/skin/controls/pip.js","webpack://xgplayer/./src/skin/controls/miniplayer.js","webpack://xgplayer/./src/skin/controls/playNext.js","webpack://xgplayer/./src/skin/controls/rotate.js","webpack://xgplayer/./src/skin/controls/reload.js","webpack://xgplayer/./src/skin/controls/screenShot.js","webpack://xgplayer/./src/skin/controls/nativeTextTrack.js","webpack://xgplayer/./src/skin/controls/textTrack.js","webpack://xgplayer/./src/skin/controls/error.js","webpack://xgplayer/./src/skin/controls/memoryPlay.js","webpack://xgplayer/./src/skin/controls/airplay.js","webpack://xgplayer/./src/skin/index.js","webpack://xgplayer/./src/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","createDom","el","tpl","attrs","cname","dom","document","createElement","className","innerHTML","keys","forEach","item","setAttribute","hasClass","classList","Array","some","match","RegExp","addClass","replace","split","add","removeClass","remove","reg","toggleClass","findDom","sel","querySelector","e","indexOf","getElementById","slice","padStart","str","length","pad","charstr","String","len","maxlen","Math","ceil","chars","push","join","substring","format","time","isNaN","hour","floor","minute","second","event","touches","touch","changedTouches","clientX","clientY","offsetX","pageX","target","offsetLeft","offsetY","pageY","offsetTop","_target","srcElement","typeOf","obj","toString","deepCopy","dst","src","Node","concat","copyDom","nodeType","back","tagName","attributes","node","_setInterval","context","eventName","intervalFunc","frequency","_interval","setInterval","_clearInterval","clearInterval","createImgBtn","imgUrl","width","height","btn","style","backgroundImage","w","h","unit","every","Number","trim","backgroundSize","margin","isWeiXin","navigator","userAgent","toLowerCase","isUc","offInDestroy","fn","offEvent","once","onDestroy","off","on","_fn","data","getBuffered2","vbuffered","maxHoleDuration","buffered","start","end","sort","a","b","diff","buffered_2","buf2len","buf2end","XgplayerTimeRange","checkIsBrowser","setStyle","elem","error","setProperty","PresentationMode","PIP","INLINE","FULLSCREEN","checkWebkitSetPresentationMode","video","webkitSetPresentationMode","util","getBgImage","url","currentStyle","getComputedStyle","href","computeWatchDur","played","arr","begin","j","splice","min","max","watch_dur","useSourceMap","list","this","map","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","id","memo","stylesInDom","isOldIE","all","atob","apply","arguments","getTarget","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","createStyleElement","type","addAttrs","update","result","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","autoFixUrls","undefined","convertToAbsoluteUrls","blob","oldSrc","sniffer","os","isPc","ua","ie","firfox","chrome","opera","safari","test","isWindowsPhone","isSymbian","isAndroid","isFireFox","isTablet","isPhone","ErrorTypes","network","code","msg","remark","mse","parse","decoder","runtime","timeout","other","Errors","constructor","currentTime","duration","networkState","readyState","currentSrc","ended","errd","line","handle","version","errorCode","mediaError","playerVersion","errorType","domain","ex","arg","Proxy","_hasStart","videoConfig","controls","isShowControl","autoplay","playsinline","airplay","tabindex","mediaType","muted","loop","textTrackDom","textTrackShowDefault","nativeTextTrack","isArray","track","default","label","kind","srclang","crossorigin","textTrackStyle","styleStr","wrap","sheet","insertRule","addRule","XgVideoProxy","videoStyle","getElementsByTagName","autoplayMuted","ev","charAt","toUpperCase","EventEmitter","lastBuffer","self","defaultVideoEventHandler","hasStart","inWaitingStart","Date","getTime","_onError","emit","curBuffer","videoEventHandler","videoEventMiddleware","evItem","addEventListener","bool","destroy","play","pause","canPlayType","getBufferedRange","range","proxyOn","proxyOnce","isTrue","crossOrigin","isFinite","replay","defaultMuted","config","err","status","en","cn","lang","playbackRate","rate","preload","seekable","seeking","posterUrl","poster","volume","vol","Player","super","ignores","whitelist","documentElement","getAttribute","language","toLocaleLowerCase","inactive","controlsList","userTimer","waitTimer","history","isProgressMoving","unselectable","onselectstart","display","vid","console","device","fluid","execBeforePluginsCall","closeI18n","install","s_i18n","method","controlStyle","fetch","headers","Accept","then","res","ok","json","prop","pluginsCall","catch","log","controlPlugins","controlsRun","evName","evFunc","player","mousemoveFunc","closeFocusVideoFocus","focus","playFunc","closePlayVideoFocus","getVideoSize","videoWidth","videoHeight","containerSize","getBoundingClientRect","fitVideoSize","setTimeout","isReady","videoInit","rotate","updateRotateDeg","removeEventListener","attachVideo","danmu","resize","canPlayFunc","playPromise","disableStartLoad","load","reload","reloadFunc","isDelDom","bulletResizeTimer","k","destroyFunc","removeAttribute","classNameList","allOff","checkTimer","clearTimeout","loadeddataFunc","replayFunc","keyShortcut","onKeydown","paused","_replay","browser","Function","userGestureTrigEvent","param","defaultUserGestureEventHandler","userGestureEventMiddleware","plugins","descriptor","warn","onFocus","onBlur","enablePausedInactive","closeInactive","onPlay","onPause","onEnded","onSeeking","isSeeking","onWaiting","onSeeked","onPlaying","use","controlLst","control","_undefined","require","val","bufferedList","HAVE_NOTHING","HAVE_METADATA","HAVE_CURRENT_DATA","HAVE_FUTURE_DATA","HAVE_ENOUGH_DATA","NETWORK_EMPTY","NETWORK_IDLE","NETWORK_LOADING","NETWORK_NO_SOURCE","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","REPLAY","ERROR","PLAY_TIPS","PAUSE_TIPS","PLAYNEXT_TIPS","DOWNLOAD_TIPS","ROTATE_TIPS","RELOAD_TIPS","FULLSCREEN_TIPS","EXITFULLSCREEN_TIPS","CSSFULLSCREEN_TIPS","EXITCSSFULLSCREEN_TIPS","TEXTTRACK","MINIPLAYER","SCREENSHOT","LIVE","OFF","MINIPLAYER_DRAG","AIRPLAY_TIPS","set","methods","descriptors","callable","defineProperties","configurable","writable","listener","__eeOnceListener__","__ee__","listeners","candidate","args","emitter","_click_","clk","clickedTime","first","onReady","onElementTouchend","isTouchMove","element","closeVideoPreventDefault","preventDefault","closeVideoStopPropagation","stopPropagation","closeVideoTouch","onTouch","closeVideoClick","enableVideoDbltouch","abs","onMouseEnter","leavePlayerTimer","onMouseLeave","closePlayerBlur","leavePlayerTime","onElementClick","onElementDblclick","closeVideoDblclick","fullscreen","createEvent","initEvent","Event","dispatchEvent","closeControlsBlur","onCanPlay","onStartBtnClick","contains","mediaSource","onPlayerReady","enableContextmenu","hideStartBtn","onclick","isValue","isPlainFunction","assign","normalizeOpts","dscr","desc","gs","isFunction","classRe","functionToString","isPrototype","isObject","possibleTypes","foo","bar","trzy","dest","TypeError","process","opts1","searchString","function","locals","location","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","onFullscreenBtnClick","rotateFullscreen","exitRotateFullscreen","getRotateFullscreen","exitFullscreen","getFullscreen","onFullscreenChange","fullscreenEl","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","onWebkitpresentationmodechanged","webkitPresentationMode","requestFullscreen","fullscreenPromise","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","webkitSupportsFullscreen","webkitEnterFullscreen","msRequestFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","onPlayBtnClick","allowPlayAfterEnded","onReplayBtnClick","playceholder","isRotateFullscreen","containerWidth","container","progress","outer","cache","point","thumbnail","dotEvent","dotItem","text","dotArr","onCanplay","progressDot","dot","left","addProgressDot","removeProgressDot","removeAllProgressDot","coverPreviewContainer","coverPreviewPoint","coverPreviewOuter","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","interval","tnailUrls","onLoadedmetadata","isShowCoverPreview","pic_num","col","row","urls","disableSwipeHandler","enableSwipeHandler","disableSwipe","disableProgress","allowSeekAfterEnded","isRotate","top","move","now","allowSeekPlayed","toFixed","maxPlayedTime","dash","closeMoveSeek","indexInPage","tnaiRowIndex","tnaiColIndex","up","passive","blur","containerLeft","compute","textContent","pointWidth","leave","onTimeupdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","onCacheUpdate","cacheUpdateEvents","onTimeChange","playBtn","tipsText","tips","fullscreenBtn","request","requestfull","exitfull","replayText","path","getPropertyValue","svg","download","strFileName","strMimeType","reader","defaultMime","mimeType","payload","anchor","myBlob","MozBlob","WebKitBlob","fileName","pop","ajax","XMLHttpRequest","open","responseType","onload","response","send","msSaveBlob","dataUrlToBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","binData","decodeURIComponent","uiArr","winMode","body","click","confirm","f","y","FileReader","readAsDataURL","getSize","Unidragger","extend","jQuery","Draggabilly","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","applyGrid","grid","position","_getPosition","startPoint","x","dragPoint","startPosition","onPointerMove","onPointerUp","enable","setHandles","handles","querySelectorAll","bindHandles","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","trigger","_getPositionCoord","_addTransformPosition","styleSide","measure","parentSize","parseFloat","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","pointerDown","okayPointerDown","isEnabled","pointerDownPointer","pointerDownBlur","_bindPostStartEvents","_pointerReset","dragStart","measureContainment","setLeftTop","animate","getContainer","elemSize","elemRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","HTMLElement","moveVector","dragMove","dragX","dragY","gridX","gridY","containDrag","axis","drag","dragEnd","isDragging","positionDrag","_this","requestAnimationFrame","staticClick","setPosition","disable","unbindHandles","removeData","_init","bridget","promise","resolve","F","reject","Je","u","kr","Fr","_","xr","Nr","parseJson","stringContent","Tr","statusText","message","T","S","O","__e","E","__g","P","copyright","M","random","A","C","R","N","L","I","getPrototypeOf","z","B","D","H","V","W","G","U","$","K","valueOf","J","Y","X","q","Z","virtual","Q","tt","et","nt","rt","it","ot","st","at","ut","ct","lt","ft","propertyIsEnumerable","ht","dt","pt","vt","yt","mt","gt","_t","xt","bt","kt","wt","Tt","St","Ot","Et","Pt","contentWindow","write","close","jt","Mt","store","At","Ct","Rt","Nt","It","Ft","zt","Bt","next","Lt","v","g","entries","values","Dt","_i","done","Ht","_k","Arguments","Vt","Wt","Gt","Ut","$t","Kt","Jt","Yt","Xt","qt","isExtensible","preventExtensions","KEY","NEED","fastKey","getWeak","onFreeze","Zt","Qt","te","getOwnPropertySymbols","ee","re","oe","getOwnPropertyNames","se","ae","ue","le","ce","fe","getOwnPropertyDescriptor","he","de","pe","ve","ye","ge","me","_e","xe","be","ke","we","Te","Se","Oe","Ee","Pe","QObject","je","findChild","Me","Ae","Ce","iterator","Re","Ne","ne","Fe","ze","Be","De","He","Ve","We","for","keyFor","useSetter","useSimple","Ge","Ue","$e","Ke","Ye","ReferenceError","Xe","qe","Ze","Qe","tn","setPrototypeOf","__proto__","check","nn","rn","sn","an","un","ln","hn","dn","vn","pn","callee","gn","return","mn","_n","bn","kn","getIteratorMethod","wn","xn","BREAK","RETURN","Tn","Sn","On","En","Pn","setImmediate","jn","clearImmediate","Mn","MessageChannel","An","Dispatch","Cn","Rn","Nn","Ln","nextTick","port2","port1","onmessage","postMessage","importScripts","onreadystatechange","In","clear","Fn","zn","MutationObserver","WebKitMutationObserver","Bn","Dn","Promise","Hn","Vn","Wn","Gn","Un","$n","Kn","Jn","Yn","Xn","from","qn","Zn","Qn","tr","er","nr","exit","enter","standalone","observe","characterData","rr","ir","or","versions","sr","v8","ar","ur","cr","lr","fr","PromiseRejectionEvent","hr","dr","_c","_v","_s","fail","_h","yr","pr","vr","onunhandledrejection","reason","_a","onrejectionhandled","gr","_d","_w","mr","yn","race","finally","try","_r","br","wr","_events","_eventsCount","eventNames","listenerCount","removeListener","removeAllListeners","addListener","prefixed","onerror","ontimeout","onabort","setRequestHeader","Sr","Or","Er","Pr","jr","Mr","Ar","Cr","Rr","checkFormat","parseASS","parseVTT","textTag","parseASSItem","exec","checkIsTime","parseVttTime","parseVttText","tag","Lr","__handlers","ResizeObserver","observer","__trigger","handler","unobserve","disconnect","contentRect","__runHandler","Ir","zr","Br","currentText","textTrack","_cid","_gid","_cids","_iId","_iC","bottom","defaultOpen","baseSizeX","baseSizeY","minSize","minMobileSize","fitVideo","offsetBottom","fontColor","_ctime","_loadingTrack","_isOpen","_videoMeta","scale","lwidth","lheight","vWidth","vHeight","vBottom","vLeft","marginBottom","subTitles","attachPlayer","setSubTitles","innerRoot","switchOff","isDefault","addStyles","switch","disabled","detachPlayer","color","__onTimeupdate","addObserver","_onResize","unObserver","_updateCurrent","show","trace","hide","__remove","_update","includes","getDelCid","getNewCid","__render","round","__startResize","fontSize","right","children","startsWith","formatTime","logger","setLogger","info","overlap","area","live","comments","direction","needResizeObserver","hideArr","domObj","containerStyle","bulletBtn","addResizeObserver","main","stop","txt","opacity","like","prior","realTime","unshift","readData","dataHandle","queue","pauseMove","startMove","setLikeDom","mouseControl","forceDuration","setFontSize","channel_id","topInit","channelSize","channel","constructorName","defaultOff","switchBtn","playedData","timer","retryTimer","retryStatus","updateQueue","nums","dataHandleTimer","bullet","hasAttached","resetWithCb","init","reset","channels","resized","containerPos","detach","noDiscard","attach","addBullet","removeBullet","containerHeight","containerRight","resizing","resizeTimer","bookChannelId","scroll","operating","bookId","channelWidth","channelHeight","bOffset","resetTimer","moveV","onChangeDirection","eventListeners","useCapture","elPos","mouseoverFunWrapper","mouseoverFun","mouseEnterControl","mouseEnterFunWrapper","mouseControlPause","unuse","removeTimer","moveTime","moveMoreS","moveContainerHeight","moveContainerWidth","pastDuration","startTime","hasMove","startMoveTimer","outerHTML","initDOM","initSize","idleList","usingList","_id","_expand","shift","textcontent","clearElementStyle","timeStampe","destroyObserver","hmr","getStyleSize","num","logError","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","div","padding","borderStyle","borderWidth","boxSizing","setup","size","innerWidth","innerHeight","outerWidth","outerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","borderHeight","isBorderBoxSizeOuter","styleWidth","styleHeight","Unipointer","_bindHandles","isAdd","bindMethod","touchAction","_touchActionValue","_bindStartEvent","PointerEvent","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","button","submit","image","file","isCursorNode","nodeName","isClickType","isOkay","focused","activeElement","pointerMove","_dragPointerMove","_dragMove","hasDragStarted","_dragStart","pointerUp","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","EvEmitter","bindStartEvent","unbindStartEvent","startEvent","handleEvent","getTouch","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","onpointerdown","isPointerDown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","events","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","onceEvents","_onceEvents","onceListeners","webpackPolyfill","deprecate","paths","onAirplayBtnClick","webkitShowPlaybackTargetPicker","WebKitPlaybackTargetAvailabilityEvent","onCssFullscreenBtnClick","exitCssFullscreen","getCssFullscreen","danmujs","closeDefaultBtn","danmuBtn","createSwitch","onDownloadBtnClick","getAbsoluteURL","downloadUtil","defaultConfig","maxCount","backupUrl","isFetch","fetchTimeout","errorConfig","_inConfig","retryCanPlay","retryData","retryCode","isFetchReturn","count","errfTimer","_originErrorEmit","errorCount","resolveFun","xhr","errorfetch","httpCode","httpMsg","Keyboard","state","isRepeat","keyCode","repeat","isBody","initEvents","onBodyKeydown","onKeyup","checkTarget","cancelBubble","returnValue","handlerKeyCode","changeVolumeSlide","disableLongPress","isLonePress","changeRate","seek","changeVolume","isBack","isLongPress","currentTimeStep","keyShortcutStep","isLoading","keyboardRate","isup","volumeStep","keyboard","onUpload","upload","uploadFile","files","lastPlayTime","onMiniplayerBtnClick","exitMiniplayer","getMiniplayer","dragLay","dragHandle","miniplayerConfig","onPipBtnClick","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","pMode","pictureInPictureWindow","pipWindow","nextBtn","playNext","onPlayNextBtnClick","currentVideoIndex","urlList","onReloadBtnClick","rotateConfig","onRotateBtnClick","clockwise","innerRotate","rotateDeg","targetWidth","targetHeight","controlsFix","transformOrigin","webKitTransform","times","factor","screenShotOptions","screenShot","encoderOptions","quality","canvas","canvasCtx","getContext","img","Image","save","saveImg","drawImage","toDataURL","screenShotImg","filename","saveLink","initMouseEvent","saveScreenShot","enableStallCheck","stallFlag","stallCheckTimer","progressTimer","lastCurrentTime","slider","selected","onVolumeChange","onVolumeBarClick","barRect","pos","isMove","onMove","onUp","onVolumeIconClick","onVolumeIconEnter","onVolumeIconLeave","_changeTimer","defaultStyle","follow","followBottom","XgSubtitles","subtitle","positionData","isActive","onSubtitleResize","SubTitles","subtitles","showDefault","isNeedMove","needRemove","isListUpdate","switchSubTitle","switchOffSubtile","barStr","cssFullscreen","icon","onCanplayResourceReady","definitionList","tmp","switchURL","_options","_mediaDataSource","originUrl","cursrc","urlInRoot","cur","definitionActive","onResourceReady","onPlayingChangeDefinition","curTime","onTimeupdateChangeDefinition","li","to","curRUL","getCurrentDefinition","liList","switchDefinition","definitionObj","playbackRateList","playbackRateUnit","playbackRateActive","selectedSpeed","defaultPlaybackRate","playbackDom","switchPlaybackRate","playbackRateObj","preview","uploadEl","onchange","panelBtn","panel","DanmuJs","focusStatus","danmuConfig","hidemodeArray","transparency","transparencyGradient","transparencyValue","background","showareaValue","danmuspeedValue","danmufontValue","pip","miniplayer","onUrlListEnd","hideButton","screenShotText","iconText","controlText","textTrackActive","trackDoms","ul","renderList","offText","isDefaultShow","onListUpdate","errorTips","refresh","onError","lastPlayTimeHideDelay","removeFunc","availability","hidden","installAll","I18n","Enter","Play","Start","Poster","Flex","Fullscreen","CssFullscreen","Volume","Definition","Loading","Progress","Time","Replay","PlaybackRate","LocalPreview","Download","Danmu","Pip","Miniplayer","PlayNext","Rotate","Reload","ScreenShot","NativeTextTrack","TextTrack","ErrorControl","MemoryPlay","Airplay","ErrorRetryControl","Mobile","Pc","StallCheck"],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"xgplayer\"] = factory();\n\telse\n\t\troot[\"xgplayer\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 74);\n","import XgplayerTimeRange from './xgplayerTimeRange'\n\nexport function createDom(el = 'div', tpl = '', attrs = {}, cname = '') {\n let dom = document.createElement(el)\n dom.className = cname\n dom.innerHTML = tpl\n Object.keys(attrs).forEach(item => {\n let key = item\n let value = attrs[item]\n if (el === 'video' || el === 'audio') {\n if (value) {\n dom.setAttribute(key, value)\n }\n } else {\n dom.setAttribute(key, value)\n }\n })\n return dom\n}\n\nexport function hasClass(el, className) {\n if (!el) {\n return false;\n }\n\n if (el.classList) {\n return Array.prototype.some.call(el.classList, item => item === className)\n } else if (el.className) {\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'))\n } else {\n return false;\n }\n}\n\nexport function addClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n className.replace(/(^\\s+|\\s+$)/g, '').split(/\\s+/g).forEach(item => {\n item && el.classList.add(item)\n })\n } else if (!hasClass(el, className)) {\n el.className += ' ' + className\n }\n}\n\nexport function removeClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n className.split(/\\s+/g).forEach(item => {\n el.classList.remove(item)\n })\n } else if (hasClass(el, className)) {\n className.split(/\\s+/g).forEach(item => {\n let reg = new RegExp('(\\\\s|^)' + item + '(\\\\s|$)')\n el.className = el.className.replace(reg, ' ')\n })\n }\n}\n\nexport function toggleClass(el, className) {\n if (!el) {\n return;\n }\n\n className.split(/\\s+/g).forEach(item => {\n if (hasClass(el, item)) {\n removeClass(el, item)\n } else {\n addClass(el, item)\n }\n })\n}\n\nexport function findDom(el = document, sel) {\n let dom\n // fix querySelector IDs that start with a digit\n // https://stackoverflow.com/questions/37270787/uncaught-syntaxerror-failed-to-execute-queryselector-on-document\n try {\n dom = el.querySelector(sel)\n } catch (e) {\n if (sel.indexOf('#') === 0) {\n dom = el.getElementById(sel.slice(1))\n }\n }\n return dom\n}\n\nexport function padStart(str, length, pad) {\n let charstr = String(pad)\n let len = length >> 0\n let maxlen = Math.ceil(len / charstr.length)\n let chars = []\n let r = String(str)\n while (maxlen--) {\n chars.push(charstr)\n }\n return chars.join('').substring(0, len - r.length) + r\n}\n\nexport function format(time) {\n if (window.isNaN(time)) {\n return ''\n }\n let hour = padStart(Math.floor(time / 3600), 2, 0)\n let minute = padStart(Math.floor((time - hour * 3600) / 60), 2, 0)\n let second = padStart(Math.floor((time - hour * 3600 - minute * 60)), 2, 0)\n return (hour === '00' ? [minute, second] : [hour, minute, second]).join(':')\n}\n\nexport function event(e) {\n if (e.touches) {\n let touch = e.touches[0] || e.changedTouches[0]\n e.clientX = touch.clientX || 0\n e.clientY = touch.clientY || 0\n e.offsetX = touch.pageX - touch.target.offsetLeft\n e.offsetY = touch.pageY - touch.target.offsetTop\n }\n e._target = e.target || e.srcElement\n}\n\nexport function typeOf(obj) {\n return Object.prototype.toString.call(obj).match(/([^\\s.*]+)(?=]$)/g)[0]\n}\n\nexport function deepCopy(dst, src) {\n if (typeOf(src) === 'Object' && typeOf(dst) === 'Object') {\n Object.keys(src).forEach(key => {\n if (typeOf(src[key]) === 'Object' && !(src[key] instanceof Node)) {\n if (!dst[key]) {\n dst[key] = src[key]\n } else {\n deepCopy(dst[key], src[key])\n }\n } else if (typeOf(src[key]) === 'Array') {\n dst[key] = typeOf(dst[key]) === 'Array' ? dst[key].concat(src[key]) : src[key]\n } else {\n dst[key] = src[key]\n }\n })\n return dst\n }\n}\nexport function getBgImage(el) {\n // fix: return current page url when url is none\n let url = (el.currentStyle || window.getComputedStyle(el, null)).backgroundImage\n if (!url || url === 'none') {\n return ''\n }\n let a = document.createElement('a')\n a.href = url.replace(/url\\(\"|\"\\)/g, '')\n return a.href\n}\n\nexport function copyDom(dom) {\n if (dom && dom.nodeType === 1) {\n let back = document.createElement(dom.tagName)\n Array.prototype.forEach.call(dom.attributes, (node) => {\n back.setAttribute(node.name, node.value)\n })\n if (dom.innerHTML) {\n back.innerHTML = dom.innerHTML\n }\n return back\n } else {\n return ''\n }\n}\n\nexport function _setInterval(context, eventName, intervalFunc, frequency) {\n if (!context._interval[eventName]) {\n context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency)\n }\n}\n\nexport function _clearInterval(context, eventName) {\n clearInterval(context._interval[eventName])\n context._interval[eventName] = null\n}\n\nexport function createImgBtn(name, imgUrl, width, height) {\n let btn = createDom(`xg-${name}`, '', {}, `xgplayer-${name}-img`)\n btn.style.backgroundImage = `url(\"${imgUrl}\")`\n if (width && height) {\n let w, h, unit\n ['px', 'rem', 'em', 'pt', 'dp', 'vw', 'vh', 'vm', '%'].every((item) => {\n if (width.indexOf(item) > -1 && height.indexOf(item) > -1) {\n w = Number(width.slice(0, width.indexOf(item)).trim())\n h = Number(height.slice(0, height.indexOf(item)).trim())\n unit = item\n return false\n } else {\n return true\n }\n })\n btn.style.width = `${w}${unit}`\n btn.style.height = `${h}${unit}`\n btn.style.backgroundSize = `${w}${unit} ${h}${unit}`\n if (name === 'start') {\n btn.style.margin = `-${h / 2}${unit} auto auto -${w / 2}${unit}`\n } else {\n btn.style.margin = 'auto 5px auto 5px'\n }\n }\n return btn\n}\n\nexport function isWeiXin() {\n let ua = window.navigator.userAgent.toLowerCase()\n return ua.indexOf('micromessenger') > -1\n}\n\nexport function isUc() {\n let ua = window.navigator.userAgent.toLowerCase()\n return ua.indexOf('ucbrowser') > -1\n}\n\nexport function computeWatchDur(played = []) {\n let arr = []\n for (let i = 0; i < played.length; i++) {\n if(!played[i].end || played[i].begin < 0 || played[i].end < 0 || played[i].end < played[i].begin) {\n continue\n }\n if(arr.length < 1) {\n arr.push({begin: played[i].begin, end: played[i].end})\n } else {\n for (let j = 0; j < arr.length; j++) {\n let begin = played[i].begin\n let end = played[i].end\n if(end < arr[j].begin) {\n arr.splice(j, 0, {begin, end})\n break\n } else if(begin > arr[j].end) {\n if(j > arr.length - 2) {\n arr.push({begin, end})\n break\n }\n } else {\n let b = arr[j].begin\n let e = arr[j].end\n arr[j].begin = Math.min(begin, b)\n arr[j].end = Math.max(end, e)\n break\n }\n }\n }\n }\n let watch_dur = 0\n for (let i = 0; i < arr.length; i++) {\n watch_dur += arr[i].end - arr[i].begin\n }\n return watch_dur\n}\n\nexport function offInDestroy(object, event, fn, offEvent) {\n function onDestroy () {\n object.off(event, fn)\n object.off(offEvent, onDestroy)\n }\n object.once(offEvent, onDestroy)\n}\n\nexport function on(object, event, fn, offEvent) {\n if (offEvent) {\n object.on(event, fn)\n offInDestroy(object, event, fn, offEvent)\n } else {\n let _fn = data => {\n fn(data)\n object.off(event, _fn)\n }\n object.on(event, _fn)\n }\n}\n\nexport function once(object, event, fn, offEvent) {\n if (offEvent) {\n object.once(event, fn)\n offInDestroy(object, event, fn, offEvent)\n } else {\n let _fn = data => {\n fn(data)\n object.off(event, _fn)\n }\n object.once(event, _fn)\n }\n}\n\nexport function getBuffered2(vbuffered, maxHoleDuration = 0.5) { //ref: hls.js\n let buffered = []\n for (let i = 0; i < vbuffered.length; i++) {\n buffered.push({ start: vbuffered.start(i) < 0.5 ? 0 : vbuffered.start(i), end: vbuffered.end(i) });\n }\n buffered.sort(function (a, b) {\n let diff = a.start - b.start;\n if (diff) {\n return diff;\n } else {\n return b.end - a.end;\n }\n });\n let buffered_2 = []\n if (maxHoleDuration) {\n for (let i = 0; i < buffered.length; i++) {\n let buf2len = buffered_2.length\n if (buf2len) {\n let buf2end = buffered_2[buf2len - 1].end\n if ((buffered[i].start - buf2end) < maxHoleDuration) {\n if (buffered[i].end > buf2end) {\n buffered_2[buf2len - 1].end = buffered[i].end\n }\n } else {\n buffered_2.push(buffered[i])\n }\n } else {\n buffered_2.push(buffered[i])\n }\n }\n } else {\n buffered_2 = buffered\n }\n return new XgplayerTimeRange(buffered_2)\n}\n\nexport function checkIsBrowser() {\n return !(typeof(window) === 'undefined' || typeof(window.document) === 'undefined' || typeof(window.document.createElement) === 'undefined')\n}\n\nexport function setStyle(elem, name, value) {\n let style = elem.style;\n try {\n style[name] = value;\n } catch (error) {\n style.setProperty( name, value );\n }\n}\n\nexport const PresentationMode = {\n PIP: 'picture-in-picture',\n INLINE: 'inline',\n FULLSCREEN: 'fullscreen'\n}\n\nexport function checkWebkitSetPresentationMode (video) {\n return typeof video.webkitSetPresentationMode === 'function'\n}\n\nexport const util = {\n createDom, hasClass, addClass, removeClass, toggleClass, findDom, padStart, format, event, typeOf, \n deepCopy, getBgImage, copyDom, setInterval: _setInterval, clearInterval: _clearInterval, createImgBtn, isWeiXin, isUc, computeWatchDur,\n offInDestroy, on, once, getBuffered2, checkIsBrowser, setStyle\n}\n\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","let sniffer = {}\n\nObject.defineProperty(sniffer, 'device', {\n get: function () {\n let r = sniffer.os\n return r.isPc ? 'pc' : 'mobile'\n // return r.isPc ? 'pc' : r.isTablet ? 'tablet' : 'mobile'\n }\n})\n\nObject.defineProperty(sniffer, 'browser', {\n get: function () {\n let ua = navigator.userAgent.toLowerCase()\n let reg = {\n ie: /rv:([\\d.]+)\\) like gecko/,\n firfox: /firefox\\/([\\d.]+)/,\n chrome: /chrome\\/([\\d.]+)/,\n opera: /opera.([\\d.]+)/,\n safari: /version\\/([\\d.]+).*safari/\n }\n return [].concat(Object.keys(reg).filter(key => reg[key].test(ua)))[0] || ''\n }\n})\n\nObject.defineProperty(sniffer, 'os', {\n get: function () {\n let ua = navigator.userAgent\n let isWindowsPhone = /(?:Windows Phone)/.test(ua)\n let isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone\n let isAndroid = /(?:Android)/.test(ua)\n let isFireFox = /(?:Firefox)/.test(ua)\n let isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua))\n let isPhone = /(?:iPhone)/.test(ua) && !isTablet\n let isPc = !isPhone && !isAndroid && !isSymbian && !isTablet\n return {\n isTablet,\n isPhone,\n isAndroid,\n isPc,\n isSymbian,\n isWindowsPhone,\n isFireFox\n }\n }\n})\n\nexport default sniffer\n","import {version} from '../version.json'\nconst ErrorTypes = {\n network: {\n code: 1,\n msg: '视频下载错误',\n remark: '只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在'\n },\n mse: {\n code: 2,\n msg: '流追加错误',\n remark: '追加流的时候如果类型不对、无法被正确解码则会触发此类错误'\n },\n parse: {\n code: 3,\n msg: '解析错误',\n remark: 'mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误'\n },\n format: {\n code: 4,\n msg: '格式错误',\n remark: '如果浏览器不支持的格式导致播放错误'\n },\n decoder: {\n code: 5,\n msg: '解码错误',\n remark: '浏览器解码异常会抛出此类型错误'\n },\n runtime: {\n code: 6,\n msg: '语法错误',\n remark: '播放器语法错误'\n },\n timeout: {\n code: 7,\n msg: '播放超时',\n remark: '播放过程中无法正常请求下一个分段导致播放中断'\n },\n other: {\n code: 8,\n msg: '其他错误',\n remark: '不可知的错误或被忽略的错误类型'\n }\n}\n\nclass Errors {\n constructor (type, currentTime, duration, networkState, readyState, src, currentSrc,\n ended, errd = {line: '', handle: '', msg: '', version: ''}, errorCode, mediaError) {\n let r = {}\n if (arguments.length > 1) {\n r.playerVersion = version // 播放器版本\n r.errorType = type\n r.domain = document.domain // domain\n r.duration = duration // 视频时长\n r.currentTime = currentTime\n r.networkState = networkState\n r.readyState = readyState\n r.currentSrc = currentSrc\n r.src = src\n r.ended = ended\n r.errd = errd // 错误详情\n r.ex = (ErrorTypes[type] || {}).msg // 补充信息\n r.errorCode = errorCode\n r.mediaError = mediaError\n } else {\n const arg = arguments[0]\n Object.keys(arg).map(key => {\n r[key] = arg[key]\n })\n r.ex = ((arg.type && ErrorTypes[arg.type]) || {}).msg\n }\n return r\n }\n}\nexport default Errors\n","import EventEmitter from 'event-emitter'\nimport { findDom, createDom, hasClass, removeClass, _clearInterval, _setInterval, on, once, getBuffered2, setStyle } from './utils/util'\nimport Errors from './error'\n\nclass Proxy {\n constructor (options) {\n this._hasStart = false\n this.videoConfig = {\n controls: !!options.isShowControl,\n autoplay: options.autoplay,\n playsinline: options.playsinline,\n 'webkit-playsinline': options.playsinline,\n 'x5-playsinline': options.playsinline,\n 'x5-video-player-type': options['x5-video-player-type'] || options['x5VideoPlayerType'],\n 'x5-video-player-fullscreen': options['x5-video-player-fullscreen'] || options['x5VideoPlayerFullscreen'],\n 'x5-video-orientation': options['x5-video-orientation'] || options['x5VideoOrientation'],\n airplay: options['airplay'],\n 'webkit-airplay': options['airplay'],\n tabindex: 2,\n mediaType: options.mediaType || 'video'\n }\n if (options.muted) {\n this.videoConfig.muted = 'muted'\n }\n if (options.loop) {\n this.videoConfig.loop = 'loop'\n }\n let textTrackDom = ''\n this.textTrackShowDefault = true\n if (options.nativeTextTrack && Array.isArray(options.nativeTextTrack)) {\n if (options.nativeTextTrack.length > 0 && !options.nativeTextTrack.some(track => { return track.default })) {\n options.nativeTextTrack[0].default = true\n this.textTrackShowDefault = false\n }\n options.nativeTextTrack.some(track => {\n if (track.src && track.label && track.default) {\n textTrackDom += `<track src=\"${track.src}\" `\n if (track.kind) {\n textTrackDom += `kind=\"${track.kind}\" `\n }\n textTrackDom += `label=\"${track.label}\" `\n if (track.srclang) {\n textTrackDom += `srclang=\"${track.srclang}\" `\n }\n textTrackDom += `${track.default ? 'default' : ''}>`\n return true\n }\n })\n this.videoConfig.crossorigin = 'anonymous'\n }\n if (options.textTrackStyle) {\n let style = document.createElement('style')\n this.textTrackStyle = style\n document.head.appendChild(style)\n let styleStr = ''\n for (let index in options.textTrackStyle) {\n styleStr += `${index}: ${options.textTrackStyle[index]};`\n }\n let wrap = options.id ? `#${options.id}` : (options.el.id ? `#${options.el.id}` : `.${options.el.className}`)\n if (style.sheet.insertRule) {\n style.sheet.insertRule(`${wrap} video::cue { ${styleStr} }`, 0)\n } else if (style.sheet.addRule) {\n style.sheet.addRule(`${wrap} video::cue`, styleStr)\n }\n }\n let el = options.el ? options.el : findDom(document, `#${options.id}`)\n const XgVideoProxy = this.constructor.XgVideoProxy\n if(XgVideoProxy && this.videoConfig.mediaType === XgVideoProxy.mediaType) {\n this.video = new XgVideoProxy(el, options)\n } else {\n this.video = createDom(this.videoConfig.mediaType, textTrackDom, this.videoConfig, '')\n }\n if (options.videoStyle) {\n Object.keys(options.videoStyle).forEach(key => {\n setStyle(this.video, key, options.videoStyle[key])\n })\n }\n if (!this.textTrackShowDefault && textTrackDom) {\n let trackDoms = this.video.getElementsByTagName('Track')\n trackDoms[0].track.mode = 'hidden'\n }\n if (options.autoplay) {\n this.video.autoplay = true\n if (options.autoplayMuted) {\n this.video.muted = true\n }\n }\n\n this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked', 'progress', \n 'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'ratechange', 'loadedmetadata', 'loadeddata', 'loadstart'\n ].map((item) => {\n return {\n [item]: `on${item.charAt(0).toUpperCase()}${item.slice(1)}`\n }\n })\n EventEmitter(this)\n\n this._interval = {}\n let lastBuffer = '0,0'\n let self = this\n\n const defaultVideoEventHandler = name => {\n // fix when video destroy called and video reload\n if (!this) {\n return\n }\n if (name === 'play') {\n this.hasStart = true\n } else if (name === 'canplay') {\n removeClass(this.root, 'xgplayer-is-enter')\n } else if (name === 'waiting') {\n this.inWaitingStart = new Date().getTime()\n } else if (name === 'playing') {\n removeClass(this.root, 'xgplayer-is-enter')\n if (this.inWaitingStart) {\n this.inWaitingStart = undefined\n }\n }\n if (name === 'error') {\n // process the error\n this._onError(name)\n } else {\n this.emit(name, this)\n }\n\n if (this.hasOwnProperty('_interval')) {\n if (['ended', 'error', 'timeupdate'].indexOf(name) < 0) {\n _clearInterval(this, 'bufferedChange')\n _setInterval(this, 'bufferedChange', function () {\n if (this.video && this.video.buffered) {\n let curBuffer = []\n for (let i = 0, len = this.video.buffered.length; i < len; i++) {\n curBuffer.push([this.video.buffered.start(i), this.video.buffered.end(i)])\n }\n if (curBuffer.toString() !== lastBuffer) {\n lastBuffer = curBuffer.toString()\n this.emit('bufferedChange', curBuffer)\n }\n }\n }, 200)\n } else {\n if (name !== 'timeupdate') {\n _clearInterval(this, 'bufferedChange')\n }\n }\n }\n }\n\n const videoEventHandler = name => {\n if(options.videoEventMiddleware && typeof options.videoEventMiddleware[name] === 'function') {\n options.videoEventMiddleware[name].call(this, this, name, defaultVideoEventHandler)\n } else {\n defaultVideoEventHandler.call(this, name);\n }\n }\n\n this.ev.forEach(item => {\n self.evItem = Object.keys(item)[0]\n let name = Object.keys(item)[0]\n self.video.addEventListener(Object.keys(item)[0], videoEventHandler.bind(self, name))\n })\n }\n /**\n * 错误监听处理逻辑抽离\n */\n _onError (name) {\n if (this.video && this.video.error) {\n this.emit(name, new Errors('other', this.currentTime, this.duration, this.networkState, this.readyState, this.currentSrc, this.src,\n this.ended, {\n line: 162,\n msg: this.error,\n handle: 'Constructor'\n }, this.video.error.code, this.video.error))\n }\n }\n\n get hasStart () {\n return this._hasStart\n }\n set hasStart (bool) {\n if (typeof bool === 'boolean' && bool === true && !this._hasStart) {\n this._hasStart = true\n this.emit('hasstart')\n }\n }\n destroy () {\n if (this.textTrackStyle) {\n this.textTrackStyle.parentNode.removeChild(this.textTrackStyle)\n }\n }\n play () {\n return this.video.play()\n }\n pause () {\n this.video.pause()\n }\n canPlayType (type) {\n return this.video.canPlayType(type)\n }\n getBufferedRange (buffered) {\n let range = [0, 0]\n let video = this.video\n if(!buffered) buffered = video.buffered\n let currentTime = video.currentTime\n if (buffered) {\n for (let i = 0, len = buffered.length; i < len; i++) {\n range[0] = buffered.start(i)\n range[1] = buffered.end(i)\n if (range[0] <= currentTime && currentTime <= range[1]) {\n break\n }\n }\n }\n if (range[0] - currentTime <= 0 && currentTime - range[1] <= 0) {\n return range\n } else {\n return [0, 0]\n }\n }\n proxyOn (event, fn) {\n on(this, event, fn, 'destroy')\n }\n proxyOnce (event, fn) {\n once(this, event, fn, 'destroy')\n }\n set autoplay (isTrue) {\n if(this.video) {\n this.video.autoplay = isTrue\n }\n }\n get autoplay () {\n if(this.video) {\n return this.video.autoplay\n } else {\n return false\n }\n }\n get buffered () {\n if(this.video) {\n return this.video.buffered\n } else {\n return undefined\n }\n }\n get buffered2 () {\n return getBuffered2(this.video.buffered)\n }\n get crossOrigin () {\n if(this.video) {\n return this.video.crossOrigin\n } else {\n return false\n }\n }\n set crossOrigin (isTrue) {\n if(this.video) {\n this.video.crossOrigin = isTrue\n }\n }\n get currentSrc () {\n if(this.video) {\n return this.video.currentSrc\n } else {\n return undefined\n }\n }\n get currentTime () {\n if(this.video) {\n return this.video.currentTime || 0\n } else {\n return 0\n }\n }\n set currentTime (time) {\n if (typeof isFinite === 'function' && !isFinite(time)) return\n if (hasClass(this.root, 'xgplayer-ended')) {\n this.once('playing', () => { this.video.currentTime = time })\n this.replay()\n } else {\n this.video.currentTime = time\n }\n this.emit('currentTimeChange', time)\n }\n get defaultMuted () {\n if(this.video) {\n return this.video.defaultMuted\n } else {\n return false\n }\n }\n set defaultMuted (isTrue) {\n if(this.video) {\n this.video.defaultMuted = isTrue\n }\n }\n get duration () {\n if(this.config.duration) {\n if(this.video) return Math.min(this.config.duration, this.video.duration)\n else return this.config.duration\n }\n if (!this.video) return null\n return this.video.duration\n }\n get ended () {\n if(this.video) {\n return this.video.ended || false\n } else {\n return true\n }\n }\n get error () {\n let err = this.video.error\n if (!err) {\n return null\n }\n let status = [{\n en: 'MEDIA_ERR_ABORTED',\n cn: '取回过程被用户中止'\n }, {\n en: 'MEDIA_ERR_NETWORK',\n cn: '当下载时发生错误'\n }, {\n en: 'MEDIA_ERR_DECODE',\n cn: '当解码时发生错误'\n }, {\n en: 'MEDIA_ERR_SRC_NOT_SUPPORTED',\n cn: '不支持音频/视频'\n }]\n return this.lang ? this.lang[status[err.code - 1].en] : status[err.code - 1].en\n }\n get loop () {\n if(this.video) {\n return this.video.loop\n } else {\n return false\n }\n }\n set loop (isTrue) {\n if(this.video) {\n this.video.loop = isTrue\n }\n }\n get muted () {\n if(this.video) {\n return this.video.muted\n } else {\n return false\n }\n }\n set muted (isTrue) {\n if(this.video) {\n this.video.muted = isTrue\n }\n }\n get networkState () {\n let status = [{\n en: 'NETWORK_EMPTY',\n cn: '音频/视频尚未初始化'\n }, {\n en: 'NETWORK_IDLE',\n cn: '音频/视频是活动的且已选取资源,但并未使用网络'\n }, {\n en: 'NETWORK_LOADING',\n cn: '浏览器正在下载数据'\n }, {\n en: 'NETWORK_NO_SOURCE',\n cn: '未找到音频/视频来源'\n }]\n return this.lang ? this.lang[status[this.video.networkState].en] : status[this.video.networkState].en\n }\n get paused () {\n // if(this.video) {\n // return this.video.paused\n // } else {\n // return false\n // }\n return hasClass(this.root, 'xgplayer-pause')\n }\n get playbackRate () {\n if(this.video) {\n return this.video.playbackRate\n } else {\n return 1\n }\n }\n set playbackRate (rate) {\n if(this.video) {\n this.video.playbackRate = rate\n }\n }\n get played () {\n if(this.video) {\n return this.video.played\n } else {\n return undefined\n }\n }\n get preload () {\n if(this.video) {\n return this.video.preload\n } else {\n return false\n }\n }\n set preload (isTrue) {\n if(this.video) {\n this.video.preload = isTrue\n }\n }\n get readyState () {\n let status = [{\n en: 'HAVE_NOTHING',\n cn: '没有关于音频/视频是否就绪的信息'\n }, {\n en: 'HAVE_METADATA',\n cn: '关于音频/视频就绪的元数据'\n }, {\n en: 'HAVE_CURRENT_DATA',\n cn: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒'\n }, {\n en: 'HAVE_FUTURE_DATA',\n cn: '当前及至少下一帧的数据是可用的'\n }, {\n en: 'HAVE_ENOUGH_DATA',\n cn: '可用数据足以开始播放'\n }]\n return this.lang ? this.lang[status[this.video.readyState].en] : status[this.video.readyState]\n }\n get seekable () {\n if(this.video) {\n return this.video.seekable\n } else {\n return false\n }\n }\n get seeking () {\n if(this.video) {\n return this.video.seeking\n } else {\n return false\n }\n }\n get src () {\n if(this.video) {\n return this.video.src\n } else {\n return undefined\n }\n }\n set src (url) {\n if (!hasClass(this.root, 'xgplayer-ended')) {\n this.emit('urlchange', this.video.src)\n }\n removeClass(this.root, 'xgplayer-ended xgplayer-is-replay xgplayer-is-error')\n this.video.pause()\n this.emit('pause')\n this.video.src = url\n this.emit('srcChange')\n }\n set poster (posterUrl) {\n let poster = findDom(this.root, '.xgplayer-poster')\n if (poster) {\n poster.style.backgroundImage = `url(${posterUrl})`\n }\n }\n get volume () {\n if(this.video) {\n return this.video.volume\n } else {\n return 1\n }\n }\n set volume (vol) {\n if(this.video) {\n this.video.volume = vol\n }\n }\n get fullscreen () {\n return hasClass(this.root, 'xgplayer-is-fullscreen') || hasClass(this.root, 'xgplayer-fullscreen-active')\n }\n get bullet () {\n return findDom(this.root, 'xg-danmu') ? hasClass(findDom(this.root, 'xg-danmu'), 'xgplayer-has-danmu') : false\n }\n get textTrack () {\n return hasClass(this.root, 'xgplayer-is-textTrack')\n }\n get pip () {\n return hasClass(this.root, 'xgplayer-pip-active')\n }\n}\n\nexport default Proxy\n","import Proxy from './proxy'\nimport { util, deepCopy, findDom, createDom, addClass, typeOf, hasClass, removeClass, checkIsBrowser } from './utils/util'\nimport sniffer from './utils/sniffer'\nimport XgplayerTimeRange from './utils/xgplayerTimeRange'\nimport Errors from './error'\nimport allOff from 'event-emitter/all-off'\nimport s_i18n from './skin/controls/i18n.js'\nimport './skin/style/index.scss'\n\nimport {\n version\n} from '../version.json'\nclass Player extends Proxy {\n constructor (options) {\n super(options)\n this.config = deepCopy({\n width: 600,\n height: 337.5,\n ignores: [],\n whitelist: [],\n lang: (document.documentElement.getAttribute('lang') || navigator.language || 'zh-cn').toLocaleLowerCase(),\n inactive: 3000,\n volume: 0.6,\n controls: true,\n controlsList: ['nodownload']\n }, options)\n this.version = version\n this.userTimer = null\n this.waitTimer = null\n this.history = []\n this.isProgressMoving = false\n this.root = findDom(document, `#${this.config.id}`)\n this.controls = createDom('xg-controls', '', {\n unselectable: 'on',\n onselectstart: 'return false'\n }, 'xgplayer-controls')\n if (this.config.isShowControl) {\n this.controls.style.display = 'none'\n }\n if (!this.root) {\n let el = this.config.el\n if (el && el.nodeType === 1) {\n this.root = el\n } else {\n this.emit('error', new Errors({\n type: 'use',\n errd: {\n line: 45,\n handle: 'Constructor',\n msg: 'container id can\\'t be empty'\n },\n vid: this.config.vid\n }))\n console.error('container id can\\'t be empty')\n return false\n }\n }\n // this.rootBackup = copyDom(this.root)\n addClass(this.root, `xgplayer xgplayer-${sniffer.device} xgplayer-nostart xgplayer-pause ${this.config.controls ? '' : 'xgplayer-no-controls'}`)\n this.root.appendChild(this.controls)\n if (this.config.fluid) {\n this.root.style['max-width'] = '100%'\n this.root.style['width'] = '100%'\n this.root.style['height'] = '0'\n this.root.style['padding-top'] = `${this.config.height * 100 / this.config.width}%`\n\n this.video.style['position'] = 'absolute'\n this.video.style['top'] = '0'\n this.video.style['left'] = '0'\n } else {\n // this.root.style.width = `${this.config.width}px`\n // this.root.style.height = `${this.config.height}px`\n if (this.config.width) {\n if (typeof this.config.width !== 'number') {\n this.root.style.width = this.config.width\n } else {\n this.root.style.width = `${this.config.width}px`\n }\n }\n if (this.config.height) {\n if (typeof this.config.height !== 'number') {\n this.root.style.height = this.config.height\n } else {\n this.root.style.height = `${this.config.height}px`\n }\n }\n }\n if (this.config.execBeforePluginsCall) {\n this.config.execBeforePluginsCall.forEach(item => {\n item.call(this, this)\n })\n }\n if(!this.config.closeI18n) {\n Player.install(s_i18n.name, s_i18n.method)\n }\n if (this.config.controlStyle && typeOf(this.config.controlStyle) === 'String') {\n let self = this\n fetch(self.config.controlStyle, {\n method: 'GET',\n headers: {\n Accept: 'application/json'\n }\n }).then(function (res) {\n if (res.ok) {\n res.json().then(function (obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n self.config[prop] = obj[prop]\n }\n }\n self.pluginsCall()\n })\n }\n }).catch(function (err) {\n console.log('Fetch错误:' + err)\n })\n } else {\n this.pluginsCall()\n }\n if(this.config.controlPlugins) {\n Player.controlsRun(this.config.controlPlugins, this)\n }\n this.ev.forEach((item) => {\n let evName = Object.keys(item)[0]\n let evFunc = this[item[evName]]\n if (evFunc) {\n this.on(evName, evFunc)\n }\n });\n\n ['focus', 'blur'].forEach(item => {\n this.on(item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)])\n })\n let player = this\n this.mousemoveFunc = function () {\n player.emit('focus')\n if (!player.config.closeFocusVideoFocus) {\n player.video.focus()\n }\n }\n this.root.addEventListener('mousemove', this.mousemoveFunc)\n this.playFunc = function () {\n player.emit('focus')\n if (!player.config.closePlayVideoFocus) {\n player.video.focus()\n }\n }\n player.once('play', this.playFunc)\n\n this.getVideoSize = function () {\n if (this.video.videoWidth && this.video.videoHeight) {\n let containerSize = player.root.getBoundingClientRect()\n if (player.config.fitVideoSize === 'auto') {\n if (containerSize.width / containerSize.height > this.video.videoWidth / this.video.videoHeight) {\n player.root.style.height = `${this.video.videoHeight / this.video.videoWidth * containerSize.width}px`\n } else {\n player.root.style.width = `${this.video.videoWidth / this.video.videoHeight * containerSize.height}px`\n }\n } else if (player.config.fitVideoSize === 'fixWidth') {\n player.root.style.height = `${this.video.videoHeight / this.video.videoWidth * containerSize.width}px`\n } else if (player.config.fitVideoSize === 'fixHeight') {\n player.root.style.width = `${this.video.videoWidth / this.video.videoHeight * containerSize.height}px`\n }\n }\n }\n player.once('loadeddata', this.getVideoSize)\n\n setTimeout(() => {\n this.emit('ready')\n this.isReady = true\n }, 0)\n\n if (this.config.videoInit) {\n if (hasClass(this.root, 'xgplayer-nostart')) {\n this.start()\n }\n }\n if (player.config.rotate) {\n player.on('requestFullscreen', this.updateRotateDeg)\n player.on('exitFullscreen', this.updateRotateDeg)\n }\n\n function onDestroy () {\n player.root.removeEventListener('mousemove', player.mousemoveFunc)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n }\n\n attachVideo () {\n if(this.video && this.video.nodeType === 1) {\n this.root.insertBefore(this.video, this.root.firstChild)\n }\n setTimeout(() => {\n this.emit('complete')\n if(this.danmu && typeof this.danmu.resize === 'function') {\n this.danmu.resize()\n }\n }, 1)\n }\n\n start (url = this.config.url) {\n if(!this.video) return\n let player = this\n if (!url || url === '') {\n this.emit('urlNull')\n return\n }\n this.canPlayFunc = function () {\n player.off('canplay', player.canPlayFunc)\n let playPromise = player.video.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.then(function () {\n player.emit('autoplay started')\n }).catch(function () {\n player.emit('autoplay was prevented')\n addClass(player.root, 'xgplayer-is-autoplay')\n })\n }\n }\n if (typeOf(url) !== 'Array') {\n if (typeOf(url) === 'String' && url.indexOf('blob:') > -1 && url === this.video.src) {\n // 在Chromium环境下用mse url给video二次赋值会导致错误\n } else {\n this.video.src = url\n }\n } else {\n url.forEach(item => {\n this.video.appendChild(createDom('source', '', {\n src: `${item.src}`,\n type: `${item.type || ''}`\n }))\n })\n }\n if (this.config.autoplay) {\n if (sniffer.os.isPhone) {\n this.canPlayFunc()\n } else {\n this.on('canplay', this.canPlayFunc)\n }\n }\n if(!this.config.disableStartLoad) {\n this.video.load()\n }\n this.attachVideo()\n }\n\n reload () {\n this.video.load()\n this.reloadFunc = function () {\n // eslint-disable-next-line handle-callback-err\n let playPromise = this.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n this.once('loadeddata', this.reloadFunc)\n }\n\n destroy (isDelDom = true) {\n let player = this\n clearInterval(this.bulletResizeTimer)\n for (let k in this._interval) {\n clearInterval(this._interval[k])\n this._interval[k] = null\n }\n if (this.checkTimer) {\n clearInterval(this.checkTimer)\n }\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n this.ev.forEach((item) => {\n let evName = Object.keys(item)[0]\n let evFunc = this[item[evName]]\n if (evFunc) {\n this.off(evName, evFunc)\n }\n });\n if (this.loadeddataFunc) {\n this.off('loadeddata', this.loadeddataFunc)\n }\n if (this.reloadFunc) {\n this.off('loadeddata', this.reloadFunc)\n }\n if (this.replayFunc) {\n this.off('play', this.replayFunc)\n }\n if (this.playFunc) {\n this.off('play', this.playFunc)\n }\n if (this.getVideoSize) {\n this.off('loadeddata', this.getVideoSize)\n };\n ['focus', 'blur'].forEach(item => {\n this.off(item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)])\n })\n if (!this.config.keyShortcut || this.config.keyShortcut === 'on') {\n ['video', 'controls'].forEach(item => {\n if (this[item]) {\n this[item].removeEventListener('keydown', function (e) { player.onKeydown(e, player) })\n }\n })\n }\n\n function destroyFunc () {\n this.emit('destroy')\n // this.root.id = this.root.id + '_del'\n // parentNode.insertBefore(this.rootBackup, this.root)\n\n // fix video destroy https://stackoverflow.com/questions/3258587/how-to-properly-unload-destroy-a-video-element\n this.video.removeAttribute('src') // empty source\n this.video.load()\n if (isDelDom) {\n // parentNode.removeChild(this.root)\n this.root.innerHTML = ''\n let classNameList = this.root.className.split(' ')\n if (classNameList.length > 0) {\n this.root.className = classNameList.filter(name => name.indexOf('xgplayer') < 0).join(' ')\n } else {\n this.root.className = ''\n }\n }\n\n for (let k in this) {\n // if (k !== 'config') {\n delete this[k]\n // }\n }\n allOff(this)\n }\n\n if (!this.paused) {\n this.pause()\n this.once('pause', destroyFunc)\n } else {\n destroyFunc.call(this)\n }\n super.destroy()\n }\n\n replay () {\n let self = this\n let _replay = this._replay\n // ie9 bugfix\n removeClass(this.root, 'xgplayer-ended')\n if(sniffer.browser.indexOf('ie') > -1) {\n this.emit('play')\n this.emit('playing')\n }\n \n if (_replay && _replay instanceof Function) {\n _replay()\n } else {\n this.currentTime = 0\n // eslint-disable-next-line handle-callback-err\n let playPromise = this.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n }\n\n userGestureTrigEvent (name, param) {\n const defaultUserGestureEventHandler = (name, param) => {\n this.emit(name, param)\n }\n if(this.config.userGestureEventMiddleware && typeof this.config.userGestureEventMiddleware[name] === 'function') {\n this.config.userGestureEventMiddleware[name].call(this, this, name, param, defaultUserGestureEventHandler)\n } else {\n defaultUserGestureEventHandler.call(this, name, param);\n }\n }\n\n pluginsCall () {\n if(Player.plugins['s_i18n']) {\n Player.plugins['s_i18n'].call(this, this)\n }\n let self = this\n if (Player.plugins) {\n let ignores = this.config.ignores\n Object.keys(Player.plugins).forEach(name => {\n let descriptor = Player.plugins[name]\n if(!descriptor || typeof descriptor !== 'function'){\n console.warn('plugin name', name , 'is invalid')\n } else {\n if (!ignores.some(item => name === item || name === 's_' + item) && name !== 's_i18n') {\n if (['pc', 'tablet', 'mobile'].some(type => type === name)) {\n if (name === sniffer.device) {\n setTimeout(() => {\n // if destroyed, skip\n if (!self.video) return;\n descriptor.call(self, self)\n }, 0)\n }\n } else {\n descriptor.call(this, this)\n }\n }\n }\n })\n }\n }\n\n onFocus () {\n let player = this\n if(hasClass(this.root, 'xgplayer-inactive')) {\n player.emit('controlShow')\n }\n removeClass(this.root, 'xgplayer-inactive')\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n player.userTimer = setTimeout(function () {\n player.emit('blur')\n }, player.config.inactive)\n }\n\n onBlur () {\n // this.video.blur()\n if ((this.config.enablePausedInactive || !this.paused) && !this.ended && !this.config.closeInactive) {\n if(!hasClass(this.root, 'xgplayer-inactive')) {\n this.emit('controlHide')\n }\n addClass(this.root, 'xgplayer-inactive')\n }\n }\n\n onPlay () {\n addClass(this.root, 'xgplayer-isloading')\n addClass(this.root, 'xgplayer-playing')\n removeClass(this.root, 'xgplayer-pause')\n }\n\n onPause () {\n addClass(this.root, 'xgplayer-pause')\n if (this.userTimer) {\n clearTimeout(this.userTimer)\n }\n this.emit('focus')\n }\n\n onEnded () {\n addClass(this.root, 'xgplayer-ended')\n removeClass(this.root, 'xgplayer-playing')\n }\n\n onSeeking () {\n this.isSeeking = true\n // 兼容IE下无法触发waiting事件的问题 seeking的时候直接出发waiting\n this.onWaiting()\n // addClass(this.root, 'seeking');\n }\n\n // onTimeupdate () {\n // // for ie,playing fired before waiting\n // if (this.waitTimer) {\n // clearTimeout(this.waitTimer)\n // }\n // removeClass(this.root, 'xgplayer-isloading')\n\n // }\n\n onSeeked () {\n // for ie,playing fired before waiting\n this.once('timeupdate', () => {\n this.isSeeking = false\n })\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n removeClass(this.root, 'xgplayer-isloading')\n }\n\n onWaiting () {\n let self = this\n if (self.waitTimer) {\n clearTimeout(self.waitTimer)\n }\n if (self.checkTimer) {\n clearInterval(self.checkTimer)\n self.checkTimer = null\n }\n let time = self.currentTime\n self.waitTimer = setTimeout(function () {\n addClass(self.root, 'xgplayer-isloading')\n self.checkTimer = setInterval(function () {\n if (self.currentTime !== time) {\n removeClass(self.root, 'xgplayer-isloading')\n clearInterval(self.checkTimer)\n self.checkTimer = null\n }\n }, 1000)\n }, 500)\n }\n\n onPlaying () {\n // 兼容safari下无法自动播放会触发该事件的场景\n if (this.paused) {\n return\n }\n this.isSeeking = false\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n removeClass(this.root, 'xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay')\n addClass(this.root, 'xgplayer-playing')\n }\n\n static install (name, descriptor) {\n if (!checkIsBrowser()) {\n return\n }\n if (!Player.plugins) {\n Player.plugins = {}\n }\n if (!Player.plugins[name]) {\n Player.plugins[name] = descriptor\n }\n }\n\n static installAll (list) {\n for(let k = 0; k < list.length; k++){\n Player.install(list[k].name, list[k].method)\n }\n }\n\n static use (name, descriptor) {\n if (!Player.plugins) {\n Player.plugins = {}\n }\n Player.plugins[name] = descriptor\n }\n\n static useAll (list) {\n for (let k in list) {\n Player.use(list[k].name, list[k].method)\n }\n }\n\n static controlsRun (controlLst, context) {\n controlLst.forEach(function(control) {\n control.method.call(context)\n })\n }\n}\n\nPlayer.util = util\nPlayer.sniffer = sniffer\nPlayer.Errors = Errors\nPlayer.XgplayerTimeRange = XgplayerTimeRange\n\nexport default Player\n","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","export default class XgplayerTimeRange {\n constructor(bufferedList) {\n this.bufferedList = bufferedList\n }\n\n start (index) {\n return this.bufferedList[index].start\n }\n\n end (index) {\n return this.bufferedList[index].end\n }\n\n get length () {\n return this.bufferedList.length\n }\n}\n","import { typeOf } from '../../utils/util'\n\nlet s_i18n = function () {\n let player = this; let lang = {};\n lang.en = {\n HAVE_NOTHING: 'There is no information on whether audio/video is ready',\n HAVE_METADATA: 'Audio/video metadata is ready ',\n HAVE_CURRENT_DATA: 'Data about the current play location is available, but there is not enough data to play the next frame/millisecond',\n HAVE_FUTURE_DATA: 'Current and at least one frame of data is available',\n HAVE_ENOUGH_DATA: 'The available data is sufficient to start playing',\n NETWORK_EMPTY: 'Audio/video has not been initialized',\n NETWORK_IDLE: 'Audio/video is active and has been selected for resources, but no network is used',\n NETWORK_LOADING: 'The browser is downloading the data',\n NETWORK_NO_SOURCE: 'No audio/video source was found',\n MEDIA_ERR_ABORTED: 'The fetch process is aborted by the user',\n MEDIA_ERR_NETWORK: 'An error occurred while downloading',\n MEDIA_ERR_DECODE: 'An error occurred while decoding',\n MEDIA_ERR_SRC_NOT_SUPPORTED: 'Audio/video is not supported',\n REPLAY: 'Replay',\n ERROR: 'Network is offline',\n PLAY_TIPS: 'Play',\n PAUSE_TIPS: 'Pause',\n PLAYNEXT_TIPS: 'Play next',\n DOWNLOAD_TIPS: 'Download',\n ROTATE_TIPS: 'Rotate',\n RELOAD_TIPS: 'Reload',\n FULLSCREEN_TIPS: \"Fullscreen\",\n EXITFULLSCREEN_TIPS: 'Exit fullscreen',\n CSSFULLSCREEN_TIPS: 'Cssfullscreen',\n EXITCSSFULLSCREEN_TIPS: 'Exit cssfullscreen',\n TEXTTRACK: 'Caption',\n PIP: 'Pip',\n MINIPLAYER: 'Miniplayer',\n SCREENSHOT: 'Screenshot',\n LIVE: 'LIVE',\n OFF: 'Off',\n MINIPLAYER_DRAG: 'Click and hold to drag',\n AIRPLAY_TIPS: 'Airplay',\n }\n lang['zh-cn'] = {\n HAVE_NOTHING: '没有关于音频/视频是否就绪的信息',\n HAVE_METADATA: '音频/视频的元数据已就绪',\n HAVE_CURRENT_DATA: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒',\n HAVE_FUTURE_DATA: '当前及至少下一帧的数据是可用的',\n HAVE_ENOUGH_DATA: '可用数据足以开始播放',\n NETWORK_EMPTY: '音频/视频尚未初始化',\n NETWORK_IDLE: '音频/视频是活动的且已选取资源,但并未使用网络',\n NETWORK_LOADING: '浏览器正在下载数据',\n NETWORK_NO_SOURCE: '未找到音频/视频来源',\n MEDIA_ERR_ABORTED: '取回过程被用户中止',\n MEDIA_ERR_NETWORK: '当下载时发生错误',\n MEDIA_ERR_DECODE: '当解码时发生错误',\n MEDIA_ERR_SRC_NOT_SUPPORTED: '不支持的音频/视频格式',\n REPLAY: '重播',\n ERROR: '网络连接似乎出现了问题',\n PLAY_TIPS: '播放',\n PAUSE_TIPS: '暂停',\n PLAYNEXT_TIPS: '下一集',\n DOWNLOAD_TIPS: '下载',\n ROTATE_TIPS: '旋转',\n RELOAD_TIPS: '重新载入',\n FULLSCREEN_TIPS: \"进入全屏\",\n EXITFULLSCREEN_TIPS: '退出全屏',\n CSSFULLSCREEN_TIPS: '进入样式全屏',\n EXITCSSFULLSCREEN_TIPS: '退出样式全屏',\n TEXTTRACK: '字幕',\n PIP: '画中画',\n MINIPLAYER: '迷你播放器',\n SCREENSHOT: '截图',\n LIVE: '正在直播',\n OFF: '关闭',\n MINIPLAYER_DRAG: '点击按住可拖动视频',\n AIRPLAY_TIPS: '隔空播放',\n }\n lang['zh-hk'] = {\n HAVE_NOTHING: '沒有關於音頻/視頻是否就緒的信息',\n HAVE_METADATA: '音頻/視頻的元數據已就緒',\n HAVE_CURRENT_DATA: '關於當前播放位置的數據是可用的,但沒有足夠的數據來播放下壹幀/毫秒',\n HAVE_FUTURE_DATA: '當前及至少下壹幀的數據是可用的',\n HAVE_ENOUGH_DATA: '可用數據足以開始播放',\n NETWORK_EMPTY: '音頻/視頻尚未初始化',\n NETWORK_IDLE: '音頻/視頻是活動的且已選取資源,但並未使用網絡',\n NETWORK_LOADING: '瀏覽器正在下載數據',\n NETWORK_NO_SOURCE: '未找到音頻/視頻來源',\n MEDIA_ERR_ABORTED: '取回過程被用戶中止',\n MEDIA_ERR_NETWORK: '當下載時發生錯誤',\n MEDIA_ERR_DECODE: '當解碼時發生錯誤',\n MEDIA_ERR_SRC_NOT_SUPPORTED: '不支持的音頻/視頻格式',\n REPLAY: '重播',\n ERROR: '網絡連接似乎出現了問題',\n PLAY_TIPS: '播放',\n PAUSE_TIPS: '暫停',\n PLAYNEXT_TIPS: '下壹集',\n DOWNLOAD_TIPS: '下載',\n ROTATE_TIPS: '旋轉',\n RELOAD_TIPS: '重新載入',\n FULLSCREEN_TIPS: \"進入全屏\",\n EXITFULLSCREEN_TIPS: '退出全屏',\n CSSFULLSCREEN_TIPS: '進入樣式全屏',\n EXITCSSFULLSCREEN_TIPS: '退出樣式全屏',\n TEXTTRACK: '字幕',\n PIP: '畫中畫',\n MINIPLAYER: '迷妳播放器',\n SCREENSHOT: '截圖',\n LIVE: '正在直播',\n OFF: '關閉',\n MINIPLAYER_DRAG: '點擊按住可拖動視頻',\n AIRPLAY_TIPS: '隔空播放',\n }\n lang['jp'] = {\n HAVE_NOTHING: 'オーディオ/ビデオが準備できているか情報がありません',\n HAVE_METADATA: 'オーディオ/ビデオのメタデータは準備できています',\n HAVE_CURRENT_DATA: '現在の再生位置に関するデータは利用可能ですが、次のフレーム/ミリ秒を再生するのに十分なデータがありません',\n HAVE_FUTURE_DATA: '現在、少なくとも次のフレームのデータが利用可能です',\n HAVE_ENOUGH_DATA: '利用可能なデータは再生を開始するのに十分です',\n NETWORK_EMPTY: 'オーディオ/ビデオが初期化されていません',\n NETWORK_IDLE: 'オーディオ/ビデオはアクティブでリソースが選択されていますが、ネットワークが使用されていません',\n NETWORK_LOADING: 'ブラウザーはデータをダウンロードしています',\n NETWORK_NO_SOURCE: 'オーディオ/ビデオ のソースが見つかりません',\n MEDIA_ERR_ABORTED: 'ユーザーによってフェッチプロセスが中止されました',\n MEDIA_ERR_NETWORK: 'ダウンロード中にエラーが発生しました',\n MEDIA_ERR_DECODE: 'デコード中にエラーが発生しました',\n MEDIA_ERR_SRC_NOT_SUPPORTED: 'オーディオ/ビデオ の形式がサポートされていません',\n REPLAY: 'リプレイ',\n ERROR: 'ネットワークの接続に問題が発生しました',\n PLAY_TIPS: 'プレイ',\n PAUSE_TIPS: '一時停止',\n PLAYNEXT_TIPS: '次をプレイ',\n DOWNLOAD_TIPS: 'ダウンロード',\n ROTATE_TIPS: '回転',\n RELOAD_TIPS: '再読み込み',\n FULLSCREEN_TIPS: \"フルスクリーン\",\n EXITFULLSCREEN_TIPS: 'フルスクリーンを終了',\n CSSFULLSCREEN_TIPS: 'シアターモード',\n EXITCSSFULLSCREEN_TIPS: 'シアターモードを終了',\n TEXTTRACK: '字幕',\n PIP: 'ミニプレーヤー',\n MINIPLAYER: 'ミニプレーヤー',\n SCREENSHOT: 'スクリーンショット',\n LIVE: '生放送',\n OFF: 'オフ',\n MINIPLAYER_DRAG: 'ボタンを押して働画をドラッグする',\n AIRPLAY_TIPS: '隔空放送',\n }\n\n Object.defineProperty(player, 'lang', {\n get: function () {\n if (player.config) {\n return lang[player.config.lang] || lang['en']\n } else {\n return lang['en']\n }\n },\n set: function (value) {\n if (typeOf(value) === 'Object') {\n Object.keys(value).forEach(key => {\n lang[key] = value[key]\n })\n }\n }\n })\n\n}\n\nexport default {\n name: 's_i18n',\n method: s_i18n\n}","\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n","'use strict';\n\nvar d = require('d')\n , callable = require('es5-ext/object/valid-callable')\n\n , apply = Function.prototype.apply, call = Function.prototype.call\n , create = Object.create, defineProperty = Object.defineProperty\n , defineProperties = Object.defineProperties\n , hasOwnProperty = Object.prototype.hasOwnProperty\n , descriptor = { configurable: true, enumerable: false, writable: true }\n\n , on, once, off, emit, methods, descriptors, base;\n\non = function (type, listener) {\n\tvar data;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) {\n\t\tdata = descriptor.value = create(null);\n\t\tdefineProperty(this, '__ee__', descriptor);\n\t\tdescriptor.value = null;\n\t} else {\n\t\tdata = this.__ee__;\n\t}\n\tif (!data[type]) data[type] = listener;\n\telse if (typeof data[type] === 'object') data[type].push(listener);\n\telse data[type] = [data[type], listener];\n\n\treturn this;\n};\n\nonce = function (type, listener) {\n\tvar once, self;\n\n\tcallable(listener);\n\tself = this;\n\ton.call(this, type, once = function () {\n\t\toff.call(self, type, once);\n\t\tapply.call(listener, this, arguments);\n\t});\n\n\tonce.__eeOnceListener__ = listener;\n\treturn this;\n};\n\noff = function (type, listener) {\n\tvar data, listeners, candidate, i;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return this;\n\tdata = this.__ee__;\n\tif (!data[type]) return this;\n\tlisteners = data[type];\n\n\tif (typeof listeners === 'object') {\n\t\tfor (i = 0; (candidate = listeners[i]); ++i) {\n\t\t\tif ((candidate === listener) ||\n\t\t\t\t\t(candidate.__eeOnceListener__ === listener)) {\n\t\t\t\tif (listeners.length === 2) data[type] = listeners[i ? 0 : 1];\n\t\t\t\telse listeners.splice(i, 1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ((listeners === listener) ||\n\t\t\t\t(listeners.__eeOnceListener__ === listener)) {\n\t\t\tdelete data[type];\n\t\t}\n\t}\n\n\treturn this;\n};\n\nemit = function (type) {\n\tvar i, l, listener, listeners, args;\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return;\n\tlisteners = this.__ee__[type];\n\tif (!listeners) return;\n\n\tif (typeof listeners === 'object') {\n\t\tl = arguments.length;\n\t\targs = new Array(l - 1);\n\t\tfor (i = 1; i < l; ++i) args[i - 1] = arguments[i];\n\n\t\tlisteners = listeners.slice();\n\t\tfor (i = 0; (listener = listeners[i]); ++i) {\n\t\t\tapply.call(listener, this, args);\n\t\t}\n\t} else {\n\t\tswitch (arguments.length) {\n\t\tcase 1:\n\t\t\tcall.call(listeners, this);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tcall.call(listeners, this, arguments[1]);\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tcall.call(listeners, this, arguments[1], arguments[2]);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tl = arguments.length;\n\t\t\targs = new Array(l - 1);\n\t\t\tfor (i = 1; i < l; ++i) {\n\t\t\t\targs[i - 1] = arguments[i];\n\t\t\t}\n\t\t\tapply.call(listeners, this, args);\n\t\t}\n\t}\n};\n\nmethods = {\n\ton: on,\n\tonce: once,\n\toff: off,\n\temit: emit\n};\n\ndescriptors = {\n\ton: d(on),\n\tonce: d(once),\n\toff: d(off),\n\temit: d(emit)\n};\n\nbase = defineProperties({}, descriptors);\n\nmodule.exports = exports = function (o) {\n\treturn (o == null) ? create(base) : defineProperties(Object(o), descriptors);\n};\nexports.methods = methods;\n","'use strict';\n\nvar value = require('es5-ext/object/valid-object')\n\n , hasOwnProperty = Object.prototype.hasOwnProperty;\n\nmodule.exports = function (emitter/*, type*/) {\n\tvar type = arguments[1], data;\n\n\tvalue(emitter);\n\n\tif (type !== undefined) {\n\t\tdata = hasOwnProperty.call(emitter, '__ee__') && emitter.__ee__;\n\t\tif (!data) return;\n\t\tif (data[type]) delete data[type];\n\t\treturn;\n\t}\n\tif (hasOwnProperty.call(emitter, '__ee__')) delete emitter.__ee__;\n};\n","import { hasClass } from '../utils/util'\n\nlet mobile = function () {\n let player = this\n let root = player.root\n let clk = 0; let _click_\n let clickedTime = {\n first: '',\n second: ''\n }\n\n player.onElementTouchend = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (hasClass(root, 'xgplayer-inactive')) {\n player.emit('focus')\n } else {\n player.emit('blur')\n }\n if (!player.config.closeVideoTouch && !player.isTouchMove) {\n function onTouch() {\n _click_ = setTimeout(function () {\n if (hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n clk = 0\n }, 200)\n }\n if (!player.config.closeVideoClick) {\n clk++\n if (_click_) {\n clearTimeout(_click_)\n }\n if (clk === 1) {\n if(player.config.enableVideoDbltouch) {\n clickedTime.first = new Date()\n } else {\n onTouch()\n }\n } else if (clk === 2) {\n if(player.config.enableVideoDbltouch) {\n clickedTime.second = new Date()\n if (Math.abs(clickedTime.first - clickedTime.second) < 400) {\n // 双击\n onTouch()\n } else {\n clickedTime.first = new Date()\n clk = 1\n }\n } else {\n clk = 0\n }\n } else {\n clk = 0\n }\n }\n }\n }\n\n function onReady (e) {\n player.video.addEventListener('touchend', function (e) {\n player.onElementTouchend(e, player.video)\n })\n player.video.addEventListener('touchstart', () => {\n player.isTouchMove = false\n })\n player.video.addEventListener('touchmove', () => {\n player.isTouchMove = true\n })\n if (player.config.autoplay) {\n player.start()\n }\n }\n player.once('ready', onReady)\n\n function onDestroy () {\n player.off('ready', onReady)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'mobile',\n method: mobile\n}","import { hasClass } from '../utils/util'\n\nlet pc = function () {\n let player = this\n if(!player.controls || !player.video) return\n let controls = player.controls; let root = player.root\n let clk = 0; let _click_\n\n player.onElementClick = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (!player.config.closeVideoClick) {\n clk++\n if (_click_) {\n clearTimeout(_click_)\n }\n if (clk === 1) {\n _click_ = setTimeout(function () {\n if (hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n clk = 0\n }, 200)\n } else {\n clk = 0\n }\n }\n }\n player.video.addEventListener('click', function (e) { player.onElementClick(e, player.video) }, false)\n\n player.onElementDblclick = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (!player.config.closeVideoDblclick) {\n let fullscreen = controls.querySelector('.xgplayer-fullscreen')\n if (fullscreen) {\n let clk\n if (document.createEvent) {\n clk = document.createEvent('Event')\n clk.initEvent('click', true, true)\n } else {\n clk = new Event('click')\n }\n fullscreen.dispatchEvent(clk)\n }\n }\n }\n player.video.addEventListener('dblclick', function (e) { player.onElementDblclick(e, player.video) }, false)\n\n function onMouseEnter () {\n clearTimeout(player.leavePlayerTimer)\n player.emit('focus', player)\n }\n root.addEventListener('mouseenter', onMouseEnter)\n\n function onMouseLeave () {\n if(!player.config.closePlayerBlur) {\n player.leavePlayerTimer = setTimeout(function () {\n player.emit('blur', player)\n }, player.config.leavePlayerTime || 0)\n }\n }\n root.addEventListener('mouseleave', onMouseLeave)\n\n function onControlMouseEnter (e) {\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n }\n controls.addEventListener('mouseenter', onControlMouseEnter)\n\n function onControlMouseLeave (e) {\n if(!player.config.closeControlsBlur) {\n player.emit('focus', player)\n }\n }\n controls.addEventListener('mouseleave', onControlMouseLeave)\n\n function onControlClick (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n controls.addEventListener('click', onControlClick)\n\n function onReady (e) {\n if (player.config.autoplay) {\n player.start()\n }\n }\n player.once('ready', onReady)\n\n function onDestroy () {\n root.removeEventListener('mouseenter', onMouseEnter)\n root.removeEventListener('mouseleave', onMouseLeave)\n player.off('ready', onReady)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'pc',\n method: pc\n}","import { addClass, hasClass, removeClass } from '../utils/util'\n\nlet start = function () {\n let player = this\n let root = player.root\n\n function onCanPlay () {\n player.off('canplay', onCanPlay)\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n\n function onStartBtnClick () {\n if (hasClass(root, 'xgplayer-nostart')) {\n removeClass(root, 'xgplayer-nostart') // for ie quick switch\n addClass(root, 'xgplayer-is-enter')\n\n if(typeof root.contains === 'function') {\n if((player.video && player.video.nodeType === 1 && !root.contains(player.video)) || (player.video && player.video.nodeType !== 1 && player.video.mediaSource === undefined)) {\n player.once('canplay', onCanPlay)\n player.start()\n } else {\n onCanPlay()\n }\n } else {\n if((player.video && player.video.nodeType === 1 && !root.querySelector(this.videoConfig.mediaType)) || (player.video && player.video.nodeType !== 1 && player.video.mediaSource === undefined)) {\n player.once('canplay', onCanPlay)\n player.start()\n } else {\n onCanPlay()\n }\n }\n } else {\n if (player.paused) {\n removeClass(root, 'xgplayer-nostart xgplayer-isloading')\n setTimeout(() => {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }, 10)\n }\n }\n }\n player.on('startBtnClick', onStartBtnClick)\n\n function onDestroy () {\n player.off('startBtnClick', onStartBtnClick)\n player.off('canplay', onCanPlay)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'start',\n method: start\n}","import { createDom, addClass, removeClass, isWeiXin, isUc } from '../../utils/util'\nimport StartPlayIcon from '../assets/startPlay.svg'\nimport StartPauseIcon from '../assets/startPause.svg'\nimport '../style/controls/start.scss'\n\nlet s_start = function () {\n let player = this\n let root = player.root\n let btn = createDom('xg-start', `<div class=\"xgplayer-icon-play\">${StartPlayIcon}</div>\n <div class=\"xgplayer-icon-pause\">${StartPauseIcon}</div>`, {}, 'xgplayer-start')\n function onPlayerReady(player) {\n addClass(player.root, 'xgplayer-skin-default')\n if (player.config) {\n player.config.autoplay && !isWeiXin() && !isUc() && addClass(player.root, 'xgplayer-is-enter')\n if (player.config.lang && player.config.lang === 'en') {\n addClass(player.root, 'xgplayer-lang-is-en')\n } else if (player.config.lang === 'jp') {\n addClass(player.root, 'xgplayer-lang-is-jp')\n }\n if(!player.config.enableContextmenu) {\n player.video.addEventListener('contextmenu', e => {\n e.preventDefault()\n e.stopPropagation()\n })\n }\n }\n }\n\n if(player.config && player.config.hideStartBtn) {\n addClass(root, 'xgplayer-start-hide')\n }\n\n if (player.isReady) {\n root.appendChild(btn)\n onPlayerReady(player)\n } else {\n player.once('ready', () => {\n root.appendChild(btn)\n onPlayerReady(player)\n });\n }\n\n player.once('autoplay was prevented', () => {\n removeClass(player.root, 'xgplayer-is-enter')\n addClass(player.root, 'xgplayer-nostart')\n })\n\n player.once('canplay', () => {\n removeClass(player.root, 'xgplayer-is-enter')\n })\n\n btn.onclick = e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('startBtnClick')\n }\n}\n\nexport default {\n name: 's_start',\n method: s_start\n}","\"use strict\";\n\nvar isValue = require(\"type/value/is\")\n , isPlainFunction = require(\"type/plain-function/is\")\n , assign = require(\"es5-ext/object/assign\")\n , normalizeOpts = require(\"es5-ext/object/normalize-options\")\n , contains = require(\"es5-ext/string/#/contains\");\n\nvar d = (module.exports = function (dscr, value/*, options*/) {\n\tvar c, e, w, options, desc;\n\tif (arguments.length < 2 || typeof dscr !== \"string\") {\n\t\toptions = value;\n\t\tvalue = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[2];\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t\tw = contains.call(dscr, \"w\");\n\t} else {\n\t\tc = w = true;\n\t\te = false;\n\t}\n\n\tdesc = { value: value, configurable: c, enumerable: e, writable: w };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n});\n\nd.gs = function (dscr, get, set/*, options*/) {\n\tvar c, e, options, desc;\n\tif (typeof dscr !== \"string\") {\n\t\toptions = set;\n\t\tset = get;\n\t\tget = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[3];\n\t}\n\tif (!isValue(get)) {\n\t\tget = undefined;\n\t} else if (!isPlainFunction(get)) {\n\t\toptions = get;\n\t\tget = set = undefined;\n\t} else if (!isValue(set)) {\n\t\tset = undefined;\n\t} else if (!isPlainFunction(set)) {\n\t\toptions = set;\n\t\tset = undefined;\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t} else {\n\t\tc = true;\n\t\te = false;\n\t}\n\n\tdesc = { get: get, set: set, configurable: c, enumerable: e };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n","\"use strict\";\n\nvar isFunction = require(\"../function/is\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n","\"use strict\";\n\nvar isPrototype = require(\"../prototype/is\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n","\"use strict\";\n\nvar isObject = require(\"../object/is\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) return false;\n\ttry {\n\t\tif (!value.constructor) return false;\n\t\treturn value.constructor.prototype === value;\n\t} catch (error) {\n\t\treturn false;\n\t}\n};\n","\"use strict\";\n\nvar isValue = require(\"../value/is\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.assign : require(\"./shim\");\n","\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n","\"use strict\";\n\nvar keys = require(\"../keys\")\n , value = require(\"../valid-value\")\n , max = Math.max;\n\nmodule.exports = function (dest, src/*, …srcn*/) {\n\tvar error, i, length = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry {\n\t\t\tdest[key] = src[key];\n\t\t} catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < length; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.keys : require(\"./shim\");\n","\"use strict\";\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys(\"primitive\");\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n","\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n","\"use strict\";\n\n// eslint-disable-next-line no-empty-function\nmodule.exports = function () {};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n\treturn value;\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar forEach = Array.prototype.forEach, create = Object.create;\n\nvar process = function (src, obj) {\n\tvar key;\n\tfor (key in src) obj[key] = src[key];\n};\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function (opts1/*, …options*/) {\n\tvar result = create(null);\n\tforEach.call(arguments, function (options) {\n\t\tif (!isValue(options)) return;\n\t\tprocess(Object(options), result);\n\t});\n\treturn result;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? String.prototype.contains : require(\"./shim\");\n","\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n","\"use strict\";\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString/*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n","\"use strict\";\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n","\"use strict\";\n\nvar isObject = require(\"./is-object\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n\treturn value;\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/lib/index.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/lib/index.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/lib/index.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default{background:#000;width:100%;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.xgplayer-skin-default *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.xgplayer-skin-default.xgplayer-rotate-fullscreen{position:absolute;top:0;left:100%;bottom:0;right:0;height:100vw!important;width:100vh!important;-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.xgplayer-skin-default.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer-skin-default.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer-skin-default video{width:100%;height:100%;outline:none}.xgplayer-skin-default .xgplayer-none{display:none}@-webkit-keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}.xgplayer-skin-default .xgplayer-controls{display:-webkit-flex;display:-moz-box;display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.37),rgba(0,0,0,.75),rgba(0,0,0,.75));z-index:10}.xgplayer-skin-default.xgplayer-inactive .xgplayer-controls,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-progress,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-time,.xgplayer-skin-default.xgplayer-no-controls .xgplayer-controls,.xgplayer-skin-default.xgplayer-nostart .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-live{display:block}.xgplayer-skin-default .xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;-webkit-order:1;-moz-box-ordinal-group:2;order:1}.xgplayer-skin-default .xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-skin-default .xgplayer-icon svg{position:absolute}.xgplayer-skin-default .xgplayer-tips{background:rgba(0,0,0,.54);border-radius:1px;display:none;position:absolute;font-family:PingFangSC-Regular;font-size:11px;color:#fff;padding:2px 4px;text-align:center;top:-30px;left:50%;margin-left:-16px;width:auto;white-space:nowrap}.xgplayer-skin-default.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-skin-default .xgplayer-screen-container{display:block;width:100%}\", \"\"]);\n\n// exports\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./start.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./start.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./start.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-start{border-radius:50%;display:inline-block;width:70px;height:70px;background:rgba(0,0,0,.38);overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:115;margin:-35px auto auto -35px;cursor:pointer}.xgplayer-skin-default .xgplayer-start div{position:absolute}.xgplayer-skin-default .xgplayer-start div svg{fill:hsla(0,0%,100%,.7)}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-start:hover{opacity:.85}.xgplayer-skin-default.xgplayer-pause.xgplayer-start-hide .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-start-hide .xgplayer-start{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start{display:inline-block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start,.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-pause{display:none}\", \"\"]);\n\n// exports\n","import { hasClass, addClass, removeClass, PresentationMode, checkWebkitSetPresentationMode } from '../utils/util'\n\nlet fullscreen = function () {\n let player = this\n let root = player.root\n\n function onFullscreenBtnClick () {\n if (player.config.rotateFullscreen) {\n if (hasClass(root, 'xgplayer-rotate-fullscreen')) {\n player.exitRotateFullscreen()\n } else {\n player.getRotateFullscreen()\n }\n } else {\n if (hasClass(root, 'xgplayer-is-fullscreen')) {\n player.exitFullscreen(root)\n } else {\n player.getFullscreen(root)\n }\n }\n }\n player.on('fullscreenBtnClick', onFullscreenBtnClick)\n\n function onFullscreenChange () {\n let fullscreenEl = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement\n if (fullscreenEl && fullscreenEl === root) {\n addClass(root, 'xgplayer-is-fullscreen')\n player.emit('requestFullscreen')\n } else if (hasClass(root, 'xgplayer-is-fullscreen')) {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n }\n if (player.danmu && typeof player.danmu.resize === 'function') {\n player.danmu.resize()\n }\n };\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.addEventListener(item, onFullscreenChange)\n })\n\n player.video.addEventListener('webkitbeginfullscreen', function () {\n addClass(root, 'xgplayer-is-fullscreen')\n player.emit('requestFullscreen')\n })\n\n player.video.addEventListener('webkitendfullscreen', function () {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n })\n\n function onWebkitpresentationmodechanged (e) {\n const mode = player.video.webkitPresentationMode\n // 非全屏模式 退出全屏\n if (mode !== PresentationMode.FULLSCREEN) {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n }\n }\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.addEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n function onDestroy () {\n player.off('fullscreenBtnClick', onFullscreenBtnClick);\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.removeEventListener(item, onFullscreenChange)\n })\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.removeEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getFullscreen = function (el) {\n let player = this\n if (el.requestFullscreen) {\n let fullscreenPromise = el.requestFullscreen()\n if (fullscreenPromise) {\n fullscreenPromise.catch(function () {\n player.emit('fullscreen error')\n })\n }\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen()\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen(window.Element.ALLOW_KEYBOARD_INPUT)\n } else if (player.video.webkitSupportsFullscreen) {\n player.video.webkitEnterFullscreen()\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen()\n } else {\n addClass(el, 'xgplayer-is-cssfullscreen')\n }\n }\n\n player.exitFullscreen = function (el) {\n if (document.exitFullscreen) {\n document.exitFullscreen()\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen()\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen()\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen()\n }\n removeClass(el, 'xgplayer-is-cssfullscreen')\n }\n\n player.getRotateFullscreen = function () {\n let player = this\n document.documentElement.style.width = '100%'\n document.documentElement.style.height = '100%'\n if (player.config.fluid) {\n player.root.style['padding-top'] = ''\n player.root.style['max-width'] = 'unset'\n }\n if (player.root && !hasClass(player.root, 'xgplayer-rotate-fullscreen')) {\n addClass(player.root, 'xgplayer-rotate-fullscreen')\n }\n player.emit('getRotateFullscreen')\n }\n\n player.exitRotateFullscreen = function () {\n let player = this\n document.documentElement.style.width = 'unset'\n document.documentElement.style.height = 'unset'\n if (player.config.fluid) {\n player.root.style['width'] = '100%'\n player.root.style['height'] = '0'\n player.root.style['padding-top'] = `${player.config.height * 100 / player.config.width}%`\n player.root.style['max-width'] = '100%'\n }\n if (player.root && hasClass(player.root, 'xgplayer-rotate-fullscreen')) {\n removeClass(player.root, 'xgplayer-rotate-fullscreen')\n }\n player.emit('exitRotateFullscreen')\n }\n}\n\nexport default {\n name: 'fullscreen',\n method: fullscreen\n}\n","import { hasClass } from '../utils/util'\n\nlet play = function () {\n let player = this\n\n function onPlayBtnClick () {\n if (!player.config.allowPlayAfterEnded && player.ended) {\n return\n }\n if(hasClass(player.root, 'xgplayer-nostart')) {\n player.start()\n }\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n player.on('playBtnClick', onPlayBtnClick)\n\n function onDestroy () {\n player.off('playBtnClick', onPlayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'play',\n method: play\n}","import { addClass, removeClass } from '../utils/util'\n\nlet replay = function () {\n let player = this\n let root = player.root\n\n function onReplayBtnClick () {\n removeClass(root, 'xgplayer-is-replay')\n player.replay()\n }\n player.on('replayBtnClick', onReplayBtnClick)\n\n function onEnded () {\n if (!player.config.loop) {\n addClass(root, 'xgplayer-is-replay')\n }\n }\n player.on('ended', onEnded)\n\n function onDestroy () {\n player.off('replayBtnClick', onReplayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'replay',\n method: replay\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/poster.scss'\n\nlet s_poster = function () {\n let player = this\n let root = player.root\n if (!player.config.poster) {\n return\n }\n let poster = createDom('xg-poster', '', {}, 'xgplayer-poster')\n poster.style.backgroundImage = `url(${player.config.poster})`\n root.appendChild(poster)\n}\n\nexport default {\n name: 's_poster',\n method: s_poster\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/placeholder.scss'\n\nlet s_flex = function () {\n let player = this\n let playceholder = createDom('xg-placeholder', '', {}, 'xgplayer-placeholder')\n player.controls.appendChild(playceholder)\n}\n\nexport default {\n name: 's_flex',\n method: s_flex\n}","import { createDom, addClass, removeClass, hasClass, toggleClass, typeOf, event, format, findDom } from '../../utils/util'\r\nimport sniffer from '../../utils/sniffer'\r\nimport '../style/controls/progress.scss'\r\n\r\nconst isRotateFullscreen = (player) => {\r\n return hasClass(player.root, 'xgplayer-rotate-fullscreen')\r\n}\r\n\r\nlet s_progress = function () {\r\n let player = this\r\n let container = createDom('xg-progress', `<xg-outer class=\"xgplayer-progress-outer\">\r\n <xg-cache class=\"xgplayer-progress-cache\"></xg-cache>\r\n <xg-played class=\"xgplayer-progress-played\">\r\n <xg-progress-btn class=\"xgplayer-progress-btn\"></xg-progress-btn>\r\n <xg-point class=\"xgplayer-progress-point xgplayer-tips\"></xg-point>\r\n <xg-thumbnail class=\"xgplayer-progress-thumbnail xgplayer-tips\"></xg-thumbnail>\r\n </xg-played>\r\n </xg-outer>`, {tabindex: 1}, 'xgplayer-progress')\r\n let containerWidth\r\n player.controls.appendChild(container)\r\n let progress = container.querySelector('.xgplayer-progress-played')\r\n let outer = container.querySelector('.xgplayer-progress-outer')\r\n let cache = container.querySelector('.xgplayer-progress-cache')\r\n let point = container.querySelector('.xgplayer-progress-point')\r\n let thumbnail = container.querySelector('.xgplayer-progress-thumbnail')\r\n player.dotArr = {}\r\n function dotEvent (dotItem, text) {\r\n dotItem.addEventListener('mouseenter', function (e) {\r\n if (text) {\r\n addClass(dotItem, 'xgplayer-progress-dot-show')\r\n addClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n dotItem.addEventListener('mouseleave', function (e) {\r\n if (text) {\r\n removeClass(dotItem, 'xgplayer-progress-dot-show')\r\n removeClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n dotItem.addEventListener('touchend', function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n if (text) {\r\n if (!hasClass(dotItem, 'xgplayer-progress-dot-show')) {\r\n Object.keys(player.dotArr).forEach(function (key) {\r\n if (player.dotArr[key]) {\r\n removeClass(player.dotArr[key], 'xgplayer-progress-dot-show')\r\n }\r\n })\r\n }\r\n toggleClass(dotItem, 'xgplayer-progress-dot-show')\r\n toggleClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n }\r\n function onCanplay () {\r\n if (player.config.progressDot && typeOf(player.config.progressDot) === 'Array') {\r\n player.config.progressDot.forEach(item => {\r\n if (item.time >= 0 && item.time <= player.duration) {\r\n let dot = createDom('xg-progress-dot', item.text ? `<span class=\"xgplayer-progress-tip\">${item.text}</span>` : '', {}, 'xgplayer-progress-dot')\r\n dot.style.left = (item.time / player.duration) * 100 + '%'\r\n if (item.duration >= 0) {\r\n dot.style.width = (Math.min(item.duration, player.duration - item.time) / player.duration) * 100 + '%'\r\n }\r\n if(item.style) {\r\n for(let k in item.style) {\r\n dot.style[k] = item.style[k]\r\n }\r\n }\r\n outer.appendChild(dot)\r\n player.dotArr[item.time] = dot\r\n dotEvent(dot, item.text)\r\n }\r\n })\r\n }\r\n }\r\n player.once('canplay', onCanplay)\r\n player.addProgressDot = function (time, text, duration, style) {\r\n if (player.dotArr[time]) {\r\n return\r\n }\r\n if (time >= 0 && time <= player.duration) {\r\n let dot = createDom('xg-progress-dot', text ? `<span class=\"xgplayer-progress-tip\">${text}</span>` : '', {}, 'xgplayer-progress-dot')\r\n dot.style.left = (time / player.duration) * 100 + '%'\r\n if (duration >= 0) {\r\n dot.style.width = (Math.min(duration, player.duration - time) / player.duration) * 100 + '%'\r\n }\r\n if(style) {\r\n for(let k in style) {\r\n dot.style[k] = style[k]\r\n }\r\n }\r\n outer.appendChild(dot)\r\n player.dotArr[time] = dot\r\n dotEvent(dot, text)\r\n }\r\n }\r\n player.removeProgressDot = function (time) {\r\n if (time >= 0 && time <= player.duration && player.dotArr[time]) {\r\n let dot = player.dotArr[time]\r\n dot.parentNode.removeChild(dot)\r\n dot = null\r\n player.dotArr[time] = null\r\n }\r\n }\r\n player.removeAllProgressDot = function () {\r\n Object.keys(player.dotArr).forEach(function (key) {\r\n if (player.dotArr[key]) {\r\n let dot = player.dotArr[key]\r\n dot.parentNode.removeChild(dot)\r\n dot = null\r\n player.dotArr[key] = null\r\n }\r\n })\r\n }\r\n let tnailPicNum = 0\r\n let tnailWidth = 0\r\n let tnailHeight = 0\r\n let tnailCol = 0\r\n let tnailRow = 0\r\n let interval = 0\r\n let tnailUrls = []\r\n let coverPreviewContainer, coverPreviewPoint, coverPreviewOuter\r\n let onLoadedmetadata = function() {\r\n if (player.config.thumbnail) {\r\n if(player.config.thumbnail.isShowCoverPreview && !coverPreviewContainer) {\r\n progress.removeChild(thumbnail)\r\n coverPreviewContainer = createDom('xg-coverpreview', `<xg-outer class=\"xgplayer-coverpreview-outer\">\r\n <xg-thumbnail class=\"xgplayer-coverpreview-thumbnail\"></xg-thumbnail>\r\n <xg-point class=\"xgplayer-coverpreview-point\"></xg-point>\r\n </xg-outer>`, {tabindex: 1}, 'xgplayer-coverpreview')\r\n coverPreviewOuter = coverPreviewContainer.querySelector('.xgplayer-coverpreview-outer')\r\n coverPreviewPoint = coverPreviewContainer.querySelector('.xgplayer-coverpreview-point')\r\n thumbnail = coverPreviewContainer.querySelector('.xgplayer-coverpreview-thumbnail')\r\n player.root.appendChild(coverPreviewContainer)\r\n }\r\n tnailPicNum = player.config.thumbnail.pic_num\r\n tnailWidth = player.config.thumbnail.width\r\n tnailHeight = player.config.thumbnail.height\r\n tnailCol = player.config.thumbnail.col\r\n tnailRow = player.config.thumbnail.row\r\n tnailUrls = player.config.thumbnail.urls\r\n thumbnail.style.width = `${tnailWidth}px`\r\n thumbnail.style.height = `${tnailHeight}px`\r\n };\r\n };\r\n player.on('loadedmetadata', onLoadedmetadata);\r\n\r\n if (typeof player.config.disableSwipeHandler === 'function' && typeof player.config.enableSwipeHandler === 'function') {\r\n player.root.addEventListener('touchmove', e => {\r\n e.preventDefault();\r\n // e.stopPropagation();\r\n if (!player.disableSwipe) {\r\n player.disableSwipe = true\r\n player.config.disableSwipeHandler.call(player);\r\n }\r\n });\r\n player.root.addEventListener('touchstart', e => {\r\n // e.preventDefault();\r\n player.disableSwipe = true\r\n player.config.disableSwipeHandler.call(player);\r\n });\r\n player.root.addEventListener('touchend', e => {\r\n // e.preventDefault();\r\n player.disableSwipe = false\r\n player.config.enableSwipeHandler.call(player);\r\n });\r\n };\r\n\r\n ['touchstart', 'mousedown'].forEach(item => {\r\n container.addEventListener(item, function (e) {\r\n if (player.config.disableProgress) return;\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n if (e._target === point || (!player.config.allowSeekAfterEnded && player.ended)) {\r\n return true\r\n }\r\n\r\n container.focus()\r\n let {left} = progress.getBoundingClientRect()\r\n\r\n const isRotate = isRotateFullscreen(player)\r\n if (isRotate) {\r\n left = progress.getBoundingClientRect().top\r\n containerWidth = container.getBoundingClientRect().height\r\n } else {\r\n containerWidth = container.getBoundingClientRect().width\r\n left = progress.getBoundingClientRect().left\r\n }\r\n\r\n let move = function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n player.isProgressMoving = true\r\n let w = (isRotate ? e.clientY : e.clientX) - left\r\n if (w > containerWidth) {\r\n w = containerWidth\r\n }\r\n let now = w / containerWidth * player.duration\r\n if(now < 0) now = 0\r\n if(player.config.allowSeekPlayed && (Number(now).toFixed(1) > player.maxPlayedTime)) {}\r\n else {\r\n progress.style.width = `${w * 100 / containerWidth}%`\r\n\r\n if (player.videoConfig.mediaType === 'video' && !player.dash && !player.config.closeMoveSeek) {\r\n player.currentTime = Number(now).toFixed(1)\r\n } else {\r\n let time = findDom(player.controls, '.xgplayer-time')\r\n if (time) {\r\n time.innerHTML = `<span class=\"xgplayer-time-current\">${format(now || 0)}</span><span>${format(player.duration)}</span>`\r\n }\r\n }\r\n }\r\n\r\n if(player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {\r\n coverPreviewPoint.innerHTML = `<span>${format(now)}</span> / ${format(player.duration || 0)}`\r\n\r\n interval = player.duration / tnailPicNum\r\n let index = Math.floor(now / interval)\r\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\r\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\r\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\r\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\r\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\r\n coverPreviewContainer.style.display = 'block'\r\n }\r\n \r\n player.emit('focus')\r\n }\r\n let up = function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n window.removeEventListener('mousemove', move)\r\n window.removeEventListener('touchmove', move, { passive: false })\r\n window.removeEventListener('mouseup', up)\r\n window.removeEventListener('touchend', up)\r\n if(sniffer.browser.indexOf('ie') < 0) {\r\n container.blur()\r\n }\r\n if (!player.isProgressMoving || (player.videoConfig && player.videoConfig.mediaType === 'audio') || player.dash || player.config.closeMoveSeek) {\r\n let w = (isRotate ? e.clientY : e.clientX) - left\r\n if (w > containerWidth) {\r\n w = containerWidth\r\n }\r\n let now = w / containerWidth * player.duration\r\n if(now < 0) now = 0\r\n if(player.config.allowSeekPlayed && (Number(now).toFixed(1) > player.maxPlayedTime)) {}\r\n else {\r\n progress.style.width = `${w * 100 / containerWidth}%`\r\n player.currentTime = Number(now).toFixed(1)\r\n }\r\n }\r\n if(player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {\r\n coverPreviewContainer.style.display = 'none'\r\n }\r\n player.emit('focus')\r\n player.isProgressMoving = false\r\n }\r\n window.addEventListener('mousemove', move)\r\n window.addEventListener('touchmove', move, { passive: false })\r\n window.addEventListener('mouseup', up)\r\n window.addEventListener('touchend', up)\r\n return true\r\n })\r\n })\r\n\r\n container.addEventListener('mouseenter', function (e) {\r\n if (!player.config.allowSeekAfterEnded && player.ended) {\r\n return true\r\n }\r\n const isRotate = isRotateFullscreen(player)\r\n let containerLeft = isRotate ? container.getBoundingClientRect().top : container.getBoundingClientRect().left\r\n let containerWidth = isRotate ? container.getBoundingClientRect().height : container.getBoundingClientRect().width\r\n\r\n let compute = function (e) {\r\n let now = ((isRotate ? e.clientY : e.clientX) - containerLeft) / containerWidth * player.duration\r\n now = now < 0 ? 0 : now\r\n point.textContent = format(now)\r\n let pointWidth = point.getBoundingClientRect().width\r\n if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {\r\n interval = player.duration / tnailPicNum\r\n let index = Math.floor(now / interval)\r\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\r\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\r\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\r\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\r\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\r\n let left = (isRotate ? e.clientY : e.clientX) - containerLeft - tnailWidth / 2\r\n left = left > 0 ? left : 0\r\n left = left < containerWidth - tnailWidth ? left : containerWidth - tnailWidth\r\n thumbnail.style.left = `${left}px`\r\n thumbnail.style.top = `${-10 - tnailHeight}px`\r\n thumbnail.style.display = 'block'\r\n point.style.left = `${left + tnailWidth / 2 - pointWidth / 2}px`\r\n } else {\r\n let left = e.clientX - containerLeft - pointWidth / 2\r\n left = left > 0 ? left : 0\r\n left = left > containerWidth - pointWidth ? containerWidth - pointWidth : left\r\n point.style.left = `${left}px`\r\n }\r\n if (hasClass(container, 'xgplayer-progress-dot-active')) {\r\n point.style.display = 'none'\r\n } else {\r\n point.style.display = 'block'\r\n }\r\n }\r\n let move = function (e) {\r\n compute(e)\r\n }\r\n let leave = function (e) {\r\n container.removeEventListener('mousemove', move, false)\r\n container.removeEventListener('mouseleave', leave, false)\r\n compute(e)\r\n point.style.display = 'none'\r\n if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {\r\n thumbnail.style.display = 'none'\r\n }\r\n }\r\n container.addEventListener('mousemove', move, false)\r\n container.addEventListener('mouseleave', leave, false)\r\n compute(e)\r\n }, false)\r\n\r\n // let lastBtnLeft = false\r\n let onTimeupdate = function () {\r\n if(player.maxPlayedTime === undefined) player.maxPlayedTime = 0\r\n if(player.maxPlayedTime < player.currentTime) player.maxPlayedTime = player.currentTime\r\n if (!containerWidth && container) {\r\n containerWidth = container.getBoundingClientRect().width\r\n }\r\n if (!player.isProgressMoving && !player.isSeeking && !player.seeking) {\r\n const precent = player.currentTime / player.duration\r\n const prevPrecent = Number(progress.style.width.replace('%', '') || '0') / Number(container.style.width || '100');\r\n if (Math.abs(precent - prevPrecent) <= 1) {\r\n progress.style.width = `${player.currentTime * 100 / player.duration}%`\r\n }\r\n }\r\n }\r\n player.on('timeupdate', onTimeupdate)\r\n\r\n let onCurrentTimeChange = function (time) {\r\n progress.style.width = `${time * 100 / player.duration}%`\r\n }\r\n player.on('currentTimeChange', onCurrentTimeChange)\r\n\r\n let onSrcChange = function () {\r\n progress.style.width = '0%'\r\n }\r\n player.on('srcChange', onSrcChange)\r\n\r\n let onCacheUpdate = function () {\r\n let buffered = player.buffered\r\n if (buffered && buffered.length > 0) {\r\n let end = buffered.end(buffered.length - 1)\r\n for (let i = 0, len = buffered.length; i < len; i++) {\r\n if (player.currentTime >= buffered.start(i) && player.currentTime <= buffered.end(i)) {\r\n end = buffered.end(i)\r\n for (let j = i + 1; j < buffered.length; j++) {\r\n if (buffered.start(j) - buffered.end(j - 1) >= 2) {\r\n end = buffered.end(j - 1)\r\n break\r\n }\r\n }\r\n break\r\n }\r\n }\r\n cache.style.width = `${end / player.duration * 100}%`\r\n }\r\n }\r\n const cacheUpdateEvents = ['bufferedChange', 'cacheupdate', 'ended', 'timeupdate']\r\n cacheUpdateEvents.forEach(item => {\r\n player.on(item, onCacheUpdate)\r\n })\r\n\r\n function destroyFunc () {\r\n player.removeAllProgressDot()\r\n player.off('canplay', onCanplay)\r\n player.off('timeupdate', onTimeupdate)\r\n player.off('currentTimeChange', onCurrentTimeChange)\r\n player.off('srcChange', onSrcChange)\r\n player.off('loadedmetadata', onLoadedmetadata);\r\n cacheUpdateEvents.forEach(item => {\r\n player.off(item, onCacheUpdate)\r\n })\r\n player.off('destroy', destroyFunc)\r\n }\r\n player.once('destroy', destroyFunc)\r\n}\r\n\r\nexport default {\r\n name: 's_progress',\r\n method: s_progress\r\n}","import { createDom, format } from '../../utils/util'\nimport '../style/controls/time.scss'\n\nlet s_time = function () {\n let player = this\n let container = createDom('xg-time', `<span class=\"xgplayer-time-current\">${player.currentTime || format(0)}</span>\n <span>${player.duration || format(0)}</span>`, {}, 'xgplayer-time')\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(container)\n }\n })\n let onTimeChange = function () {\n // let liveText = player.lang.LIVE\n // if(player.duration === Infinity) {\n // addClass(player.root, 'xgplayer-is-live')\n // if(!findDom(player.root, '.xgplayer-live')) {\n // const live = createDom('xg-live', liveText, {}, 'xgplayer-live')\n // player.controls.appendChild(live)\n // }\n // }\n if (player.videoConfig.mediaType !== 'audio' || !player.isProgressMoving || !player.dash) {\n container.innerHTML = `<span class=\"xgplayer-time-current\">${format(player.currentTime || 0)}</span>` + `<span>${format(player.duration)}</span>`\n }\n }\n player.on('durationchange', onTimeChange)\n player.on('timeupdate', onTimeChange)\n\n function onDestroy () {\n player.off('durationchange', onTimeChange)\n player.off('timeupdate', onTimeChange)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_time',\n method: s_time\n}","import { createDom, createImgBtn } from '../../utils/util'\nimport PlayIcon from '../assets/play.svg'\nimport PauseIcon from '../assets/pause.svg'\nimport '../style/controls/play.scss'\n\nlet s_play = function () {\n let player = this\n let playBtn = player.config.playBtn ? player.config.playBtn : {}\n let btn\n if (playBtn.type === 'img') {\n btn = createImgBtn('play', playBtn.url.play, playBtn.width, playBtn.height)\n } else {\n btn = createDom('xg-play', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-play\">${PlayIcon}</div>\n <div class=\"xgplayer-icon-pause\">${PauseIcon}</div>\n </xg-icon>`, {}, 'xgplayer-play')\n }\n\n let tipsText = {}\n tipsText.play = player.lang.PLAY_TIPS\n tipsText.pause = player.lang.PAUSE_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-play\">${tipsText.play}</span>\n <span class=\"xgplayer-tip-pause\">${tipsText.pause}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(btn)\n }\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('playBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_play',\n method: s_play\n}","import { createDom, createImgBtn } from '../../utils/util'\nimport RequestFullIcon from '../assets/requestFull.svg'\nimport ExitFullIcon from '../assets/exitFull.svg'\nimport '../style/controls/fullscreen.scss'\n\nlet s_fullscreen = function () {\n let player = this\n let fullscreenBtn = player.config.fullscreenBtn ? player.config.fullscreenBtn : {}\n let btn\n if (fullscreenBtn.type === 'img') {\n btn = createImgBtn('fullscreen', fullscreenBtn.url.request, fullscreenBtn.width, fullscreenBtn.height)\n } else {\n btn = createDom('xg-fullscreen', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-requestfull\">${RequestFullIcon}</div>\n <div class=\"xgplayer-icon-exitfull\">${ExitFullIcon}</div>\n </xg-icon>`, {}, 'xgplayer-fullscreen')\n }\n\n let tipsText = {}\n tipsText.requestfull = player.lang.FULLSCREEN_TIPS\n tipsText.exitfull = player.lang.EXITFULLSCREEN_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-requestfull\">${tipsText.requestfull}</span>\n <span class=\"xgplayer-tip-exitfull\">${tipsText.exitfull}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(btn)\n }\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('fullscreenBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_fullscreen',\n method: s_fullscreen\n}","import { createDom } from '../../utils/util'\nimport Loading from '../assets/loading.svg'\nimport '../style/controls/loading.scss'\n\nlet s_loading = function () {\n let player = this\n let root = player.root\n let container = createDom('xg-loading', `${Loading}`, {}, 'xgplayer-loading')\n player.once('ready', () => {\n root.appendChild(container)\n })\n}\n\nexport default {\n name: 's_loading',\n method: s_loading\n}","import { createDom } from '../../utils/util'\nimport ReplayIcon from '../assets/replay.svg'\nimport '../style/controls/replay.scss'\n\nlet s_replay = function () {\n let player = this\n let root = player.root\n\n let replayText = player.lang.REPLAY\n let btn = createDom('xg-replay', `${ReplayIcon}\n <xg-replay-txt class=\"xgplayer-replay-txt\">${replayText}</xg-replay-txt>\n `, {}, 'xgplayer-replay')\n player.once('ready', () => {\n root.appendChild(btn)\n })\n\n function onEnded () {\n let path = btn.querySelector('path')\n if(path) {\n let transform = window.getComputedStyle(path).getPropertyValue('transform')\n if(typeof transform === 'string' && transform.indexOf('none') > -1) {\n return\n } else {\n path.setAttribute('transform', transform)\n }\n }\n }\n player.on('ended', onEnded)\n\n function onBtnClick (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n btn.addEventListener('click', onBtnClick)\n\n let svg = btn.querySelector('svg');\n\n ['click', 'touchend'].forEach(item => {\n svg.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('replayBtnClick')\n })\n })\n\n function destroyFunc () {\n player.off('ended', onEnded)\n player.off('destroy', destroyFunc)\n }\n player.once('destroy', destroyFunc)\n}\n\nexport default {\n name: 's_replay',\n method: s_replay\n}","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./play.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./play.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./play.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-play,.xgplayer-skin-default .xgplayer-play-img{width:40px;position:relative;-webkit-order:0;-moz-box-ordinal-group:1;order:0;display:block;cursor:pointer;margin-left:3px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-play .xgplayer-icon{margin-top:3px;width:32px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-play .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}.xgplayer-skin-default .xgplayer-play-img:hover,.xgplayer-skin-default .xgplayer-play:hover{opacity:.85}.xgplayer-skin-default .xgplayer-play-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-play:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-poster{display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:50%}.xgplayer-skin-default.xgplayer-nostart .xgplayer-poster{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./placeholder.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./placeholder.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./placeholder.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-placeholder{-webkit-flex:1;-moz-box-flex:1;flex:1;-webkit-order:3;-moz-box-ordinal-group:4;order:3;display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./fullscreen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./fullscreen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./fullscreen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-fullscreen,.xgplayer-skin-default .xgplayer-fullscreen-img{position:relative;-webkit-order:13;-moz-box-ordinal-group:14;order:13;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img:hover,.xgplayer-skin-default .xgplayer-fullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-fullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./loading.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./loading.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./loading.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-loading{display:none;width:100px;height:100px;overflow:hidden;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);position:absolute;left:50%;top:50%;margin:-50px auto auto -50px}.xgplayer-skin-default .xgplayer-loading svg{border-radius:50%;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-animation:loadingRotate 1s linear infinite;animation:loadingRotate 1s linear infinite}.xgplayer-skin-default .xgplayer-loading svg path{stroke:#ddd;stroke-dasharray:236;-webkit-animation:loadingDashOffset 2s linear infinite;animation:loadingDashOffset 2s linear infinite;animation-direction:alternate-reverse;fill:none;stroke-width:12px}.xgplayer-skin-default.xgplayer-nostart .xgplayer-loading{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-loading{display:none!important}.xgplayer-skin-default.xgplayer-isloading .xgplayer-loading{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./progress.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./progress.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./progress.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-progress{display:block;position:absolute;height:20px;line-height:20px;left:12px;right:12px;outline:none;top:-15px;z-index:35}.xgplayer-skin-default .xgplayer-progress-outer{background:hsla(0,0%,100%,.3);display:block;height:3px;line-height:3px;margin-top:8.5px;width:100%;position:relative;cursor:pointer}.xgplayer-skin-default .xgplayer-progress-cache,.xgplayer-skin-default .xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-skin-default .xgplayer-progress-cache{width:0;background:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#fa1f41,#e31106);border-radius:0 1.5px 1.5px 0}.xgplayer-skin-default .xgplayer-progress-btn{display:none;position:absolute;left:0;top:-5px;width:13px;height:13px;border-radius:30px;background:#fff;box-shadow:0 0 2px 0 rgba(0,0,0,.26);left:100%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);z-index:36}.xgplayer-skin-default .xgplayer-progress-point{position:absolute}.xgplayer-skin-default .xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-skin-default .xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer-skin-default .xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;bottom:200%;right:50%;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);height:auto;line-height:30px;width:auto;background:rgba(0,0,0,.3);border-radius:6px;border:1px solid rgba(0,0,0,.8);cursor:default;white-space:nowrap;display:none}.xgplayer-skin-default .xgplayer-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-skin-default .xgplayer-progress-thumbnail{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box}.xgplayer-skin-default .xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-skin-default .xgplayer-coverpreview{position:absolute;width:100%;height:100%;top:0;left:0;display:none}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer{position:absolute;display:block;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-thumbnail{display:block}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point{display:block;text-align:center;font-family:PingFangSC-Regular;font-size:11px;color:#ccc;padding:2px 4px}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point span{color:#fff}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-dot{height:6px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-btn{display:block;top:-3px}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-volume-active .xgplayer-progress{z-index:15}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress-btn{display:block!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer{height:3px!important;margin-top:8.5px!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-btn{display:block!important;top:-5px!important}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-time{-webkit-order:2;-moz-box-ordinal-group:3;order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;height:40px;text-align:center;display:inline-block;margin:auto 8px}.xgplayer-skin-default .xgplayer-time span{color:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current{color:#fff}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current:after{content:\\\"/\\\";display:inline-block;padding:0 3px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./replay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./replay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./replay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:105;display:none;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center;background:rgba(0,0,0,.54);-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.xgplayer-skin-default .xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-skin-default .xgplayer-replay svg path{-webkit-transform:translate(20px,21px);-ms-transform:translate(20px,21px);transform:translate(20px,21px);fill:#ddd}.xgplayer-skin-default .xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-skin-default .xgplayer-replay svg:hover path{fill:#fff}.xgplayer-skin-default .xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-replay{display:-webkit-flex;display:-moz-box;display:flex}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./textTrack.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./textTrack.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./textTrack.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage\n// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime\n// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs\n// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling.\n// v4 adds AMD/UMD, commonJS, and plain browser support\n// v4.1 adds url download capability via solo URL argument (same domain/CORS only)\n// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors\n// https://github.com/rndme/download\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof exports === 'object') {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.download = factory();\n }\n}(this, function () {\n\n\treturn function download(data, strFileName, strMimeType) {\n\n\t\tvar self = window, // this script is only for browsers anyway...\n\t\t\tdefaultMime = \"application/octet-stream\", // this default mime also triggers iframe downloads\n\t\t\tmimeType = strMimeType || defaultMime,\n\t\t\tpayload = data,\n\t\t\turl = !strFileName && !strMimeType && payload,\n\t\t\tanchor = document.createElement(\"a\"),\n\t\t\ttoString = function(a){return String(a);},\n\t\t\tmyBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString),\n\t\t\tfileName = strFileName || \"download\",\n\t\t\tblob,\n\t\t\treader;\n\t\t\tmyBlob= myBlob.call ? myBlob.bind(self) : Blob ;\n\t \n\t\tif(String(this)===\"true\"){ //reverse arguments, allowing download.bind(true, \"text/xml\", \"export.xml\") to act as a callback\n\t\t\tpayload=[payload, mimeType];\n\t\t\tmimeType=payload[0];\n\t\t\tpayload=payload[1];\n\t\t}\n\n\n\t\tif(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument\n\t\t\tfileName = url.split(\"/\").pop().split(\"?\")[0];\n\t\t\tanchor.href = url; // assign href prop to temp anchor\n\t\t \tif(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path:\n \t\tvar ajax=new XMLHttpRequest();\n \t\tajax.open( \"GET\", url, true);\n \t\tajax.responseType = 'blob';\n \t\tajax.onload= function(e){ \n\t\t\t\t download(e.target.response, fileName, defaultMime);\n\t\t\t\t};\n \t\tsetTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return:\n\t\t\t return ajax;\n\t\t\t} // end if valid url?\n\t\t} // end if url?\n\n\n\t\t//go ahead and download dataURLs right away\n\t\tif(/^data:([\\w+-]+\\/[\\w+.-]+)?[,;]/.test(payload)){\n\t\t\n\t\t\tif(payload.length > (1024*1024*1.999) && myBlob !== toString ){\n\t\t\t\tpayload=dataUrlToBlob(payload);\n\t\t\t\tmimeType=payload.type || defaultMime;\n\t\t\t}else{\t\t\t\n\t\t\t\treturn navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs:\n\t\t\t\t\tnavigator.msSaveBlob(dataUrlToBlob(payload), fileName) :\n\t\t\t\t\tsaver(payload) ; // everyone else can save dataURLs un-processed\n\t\t\t}\n\t\t\t\n\t\t}else{//not data url, is it a string with special needs?\n\t\t\tif(/([\\x80-\\xff])/.test(payload)){\t\t\t \n\t\t\t\tvar i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length;\n\t\t\t\tfor(i;i<mx;++i) tempUiArr[i]= payload.charCodeAt(i);\n\t\t\t \tpayload=new myBlob([tempUiArr], {type: mimeType});\n\t\t\t}\t\t \n\t\t}\n\t\tblob = payload instanceof myBlob ?\n\t\t\tpayload :\n\t\t\tnew myBlob([payload], {type: mimeType}) ;\n\n\n\t\tfunction dataUrlToBlob(strUrl) {\n\t\t\tvar parts= strUrl.split(/[:;,]/),\n\t\t\ttype= parts[1],\n\t\t\tdecoder= parts[2] == \"base64\" ? atob : decodeURIComponent,\n\t\t\tbinData= decoder( parts.pop() ),\n\t\t\tmx= binData.length,\n\t\t\ti= 0,\n\t\t\tuiArr= new Uint8Array(mx);\n\n\t\t\tfor(i;i<mx;++i) uiArr[i]= binData.charCodeAt(i);\n\n\t\t\treturn new myBlob([uiArr], {type: type});\n\t\t }\n\n\t\tfunction saver(url, winMode){\n\n\t\t\tif ('download' in anchor) { //html5 A[download]\n\t\t\t\tanchor.href = url;\n\t\t\t\tanchor.setAttribute(\"download\", fileName);\n\t\t\t\tanchor.className = \"download-js-link\";\n\t\t\t\tanchor.innerHTML = \"downloading...\";\n\t\t\t\tanchor.style.display = \"none\";\n\t\t\t\tdocument.body.appendChild(anchor);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tanchor.click();\n\t\t\t\t\tdocument.body.removeChild(anchor);\n\t\t\t\t\tif(winMode===true){setTimeout(function(){ self.URL.revokeObjectURL(anchor.href);}, 250 );}\n\t\t\t\t}, 66);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// handle non-a[download] safari as best we can:\n\t\t\tif(/(Version)\\/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari\\//.test(navigator.userAgent)) {\n\t\t\t\tif(/^data:/.test(url))\turl=\"data:\"+url.replace(/^data:([\\w\\/\\-\\+]+)/, defaultMime);\n\t\t\t\tif(!window.open(url)){ // popup blocked, offer direct download:\n\t\t\t\t\tif(confirm(\"Displaying New Document\\n\\nUse Save As... to download, then click back to return to this page.\")){ location.href=url; }\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t//do iframe dataURL download (old ch+FF):\n\t\t\tvar f = document.createElement(\"iframe\");\n\t\t\tdocument.body.appendChild(f);\n\n\t\t\tif(!winMode && /^data:/.test(url)){ // force a mime that will download:\n\t\t\t\turl=\"data:\"+url.replace(/^data:([\\w\\/\\-\\+]+)/, defaultMime);\n\t\t\t}\n\t\t\tf.src=url;\n\t\t\tsetTimeout(function(){ document.body.removeChild(f); }, 333);\n\n\t\t}//end saver\n\n\n\n\n\t\tif (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\n\t\t\treturn navigator.msSaveBlob(blob, fileName);\n\t\t}\n\n\t\tif(self.URL){ // simple fast and modern way using Blob and URL:\n\t\t\tsaver(self.URL.createObjectURL(blob), true);\n\t\t}else{\n\t\t\t// handle non-Blob()+non-URL browsers:\n\t\t\tif(typeof blob === \"string\" || blob.constructor===toString ){\n\t\t\t\ttry{\n\t\t\t\t\treturn saver( \"data:\" + mimeType + \";base64,\" + self.btoa(blob) );\n\t\t\t\t}catch(y){\n\t\t\t\t\treturn saver( \"data:\" + mimeType + \",\" + encodeURIComponent(blob) );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Blob but not URL support:\n\t\t\treader=new FileReader();\n\t\t\treader.onload=function(e){\n\t\t\t\tsaver(this.result);\n\t\t\t};\n\t\t\treader.readAsDataURL(blob);\n\t\t}\n\t\treturn true;\n\t}; /* end download() */\n}));\n","/*!\n * Draggabilly v2.3.0\n * Make that shiz draggable\n * https://draggabilly.desandro.com\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n 'unidragger/unidragger',\n ],\n function( getSize, Unidragger ) {\n return factory( window, getSize, Unidragger );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size'),\n require('unidragger')\n );\n } else {\n // browser global\n window.Draggabilly = factory(\n window,\n window.getSize,\n window.Unidragger\n );\n }\n\n}( window, function factory( window, getSize, Unidragger ) {\n\n// -------------------------- helpers & variables -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nfunction noop() {}\n\nvar jQuery = window.jQuery;\n\n// -------------------------- -------------------------- //\n\nfunction Draggabilly( element, options ) {\n // querySelector if string\n this.element = typeof element == 'string' ?\n document.querySelector( element ) : element;\n\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n\n // options\n this.options = extend( {}, this.constructor.defaults );\n this.option( options );\n\n this._create();\n}\n\n// inherit Unidragger methods\nvar proto = Draggabilly.prototype = Object.create( Unidragger.prototype );\n\nDraggabilly.defaults = {\n};\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function( opts ) {\n extend( this.options, opts );\n};\n\n// css position values that don't need to be set\nvar positionValues = {\n relative: true,\n absolute: true,\n fixed: true,\n};\n\nproto._create = function() {\n // properties\n this.position = {};\n this._getPosition();\n\n this.startPoint = { x: 0, y: 0 };\n this.dragPoint = { x: 0, y: 0 };\n\n this.startPosition = extend( {}, this.position );\n\n // set relative positioning\n var style = getComputedStyle( this.element );\n if ( !positionValues[ style.position ] ) {\n this.element.style.position = 'relative';\n }\n\n // events, bridge jQuery events from vanilla\n this.on( 'pointerMove', this.onPointerMove );\n this.on( 'pointerUp', this.onPointerUp );\n\n this.enable();\n this.setHandles();\n};\n\n/**\n * set this.handles and bind start events to 'em\n */\nproto.setHandles = function() {\n this.handles = this.options.handle ?\n this.element.querySelectorAll( this.options.handle ) : [ this.element ];\n\n this.bindHandles();\n};\n\n/**\n * emits events via EvEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = [ event ].concat( args );\n this.emitEvent( type, emitArgs );\n this.dispatchJQueryEvent( type, event, args );\n};\n\nproto.dispatchJQueryEvent = function( type, event, args ) {\n var jquery = window.jQuery;\n // trigger jQuery event\n if ( !jquery || !this.$element ) {\n return;\n }\n // create jQuery event\n /* eslint-disable-next-line new-cap */\n var $event = jquery.Event( event );\n $event.type = type;\n this.$element.trigger( $event, args );\n};\n\n// -------------------------- position -------------------------- //\n\n// get x/y position from style\nproto._getPosition = function() {\n var style = getComputedStyle( this.element );\n var x = this._getPositionCoord( style.left, 'width' );\n var y = this._getPositionCoord( style.top, 'height' );\n // clean up 'auto' or other non-integer values\n this.position.x = isNaN( x ) ? 0 : x;\n this.position.y = isNaN( y ) ? 0 : y;\n\n this._addTransformPosition( style );\n};\n\nproto._getPositionCoord = function( styleSide, measure ) {\n if ( styleSide.indexOf('%') != -1 ) {\n // convert percent into pixel for Safari, #75\n var parentSize = getSize( this.element.parentNode );\n // prevent not-in-DOM element throwing bug, #131\n return !parentSize ? 0 :\n ( parseFloat( styleSide ) / 100 ) * parentSize[ measure ];\n }\n return parseInt( styleSide, 10 );\n};\n\n// add transform: translate( x, y ) to position\nproto._addTransformPosition = function( style ) {\n var transform = style.transform;\n // bail out if value is 'none'\n if ( transform.indexOf('matrix') !== 0 ) {\n return;\n }\n // split matrix(1, 0, 0, 1, x, y)\n var matrixValues = transform.split(',');\n // translate X value is in 12th or 4th position\n var xIndex = transform.indexOf('matrix3d') === 0 ? 12 : 4;\n var translateX = parseInt( matrixValues[ xIndex ], 10 );\n // translate Y value is in 13th or 5th position\n var translateY = parseInt( matrixValues[ xIndex + 1 ], 10 );\n this.position.x += translateX;\n this.position.y += translateY;\n};\n\n// -------------------------- events -------------------------- //\n\nproto.onPointerDown = function( event, pointer ) {\n this.element.classList.add('is-pointer-down');\n this.dispatchJQueryEvent( 'pointerDown', event, [ pointer ] );\n};\n\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay || !this.isEnabled ) {\n this._pointerReset();\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.element.classList.add('is-pointer-down');\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\n/**\n * drag start\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.dragStart = function( event, pointer ) {\n if ( !this.isEnabled ) {\n return;\n }\n this._getPosition();\n this.measureContainment();\n // position _when_ drag began\n this.startPosition.x = this.position.x;\n this.startPosition.y = this.position.y;\n // reset left/top style\n this.setLeftTop();\n\n this.dragPoint.x = 0;\n this.dragPoint.y = 0;\n\n this.element.classList.add('is-dragging');\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n // start animation\n this.animate();\n};\n\nproto.measureContainment = function() {\n var container = this.getContainer();\n if ( !container ) {\n return;\n }\n\n var elemSize = getSize( this.element );\n var containerSize = getSize( container );\n var elemRect = this.element.getBoundingClientRect();\n var containerRect = container.getBoundingClientRect();\n\n var borderSizeX = containerSize.borderLeftWidth + containerSize.borderRightWidth;\n var borderSizeY = containerSize.borderTopWidth + containerSize.borderBottomWidth;\n\n var position = this.relativeStartPosition = {\n x: elemRect.left - ( containerRect.left + containerSize.borderLeftWidth ),\n y: elemRect.top - ( containerRect.top + containerSize.borderTopWidth ),\n };\n\n this.containSize = {\n width: ( containerSize.width - borderSizeX ) - position.x - elemSize.width,\n height: ( containerSize.height - borderSizeY ) - position.y - elemSize.height,\n };\n};\n\nproto.getContainer = function() {\n var containment = this.options.containment;\n if ( !containment ) {\n return;\n }\n var isElement = containment instanceof HTMLElement;\n // use as element\n if ( isElement ) {\n return containment;\n }\n // querySelector if string\n if ( typeof containment == 'string' ) {\n return document.querySelector( containment );\n }\n // fallback to parent element\n return this.element.parentNode;\n};\n\n// ----- move event ----- //\n\nproto.onPointerMove = function( event, pointer, moveVector ) {\n this.dispatchJQueryEvent( 'pointerMove', event, [ pointer, moveVector ] );\n};\n\n/**\n * drag move\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n * @param {Object} moveVector - x and y coordinates\n */\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isEnabled ) {\n return;\n }\n var dragX = moveVector.x;\n var dragY = moveVector.y;\n\n var grid = this.options.grid;\n var gridX = grid && grid[0];\n var gridY = grid && grid[1];\n\n dragX = applyGrid( dragX, gridX );\n dragY = applyGrid( dragY, gridY );\n\n dragX = this.containDrag( 'x', dragX, gridX );\n dragY = this.containDrag( 'y', dragY, gridY );\n\n // constrain to axis\n dragX = this.options.axis == 'y' ? 0 : dragX;\n dragY = this.options.axis == 'x' ? 0 : dragY;\n\n this.position.x = this.startPosition.x + dragX;\n this.position.y = this.startPosition.y + dragY;\n // set dragPoint properties\n this.dragPoint.x = dragX;\n this.dragPoint.y = dragY;\n\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nfunction applyGrid( value, grid, method ) {\n method = method || 'round';\n return grid ? Math[ method ]( value/grid ) * grid : value;\n}\n\nproto.containDrag = function( axis, drag, grid ) {\n if ( !this.options.containment ) {\n return drag;\n }\n var measure = axis == 'x' ? 'width' : 'height';\n\n var rel = this.relativeStartPosition[ axis ];\n var min = applyGrid( -rel, grid, 'ceil' );\n var max = this.containSize[ measure ];\n max = applyGrid( max, grid, 'floor' );\n return Math.max( min, Math.min( max, drag ) );\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.onPointerUp = function( event, pointer ) {\n this.element.classList.remove('is-pointer-down');\n this.dispatchJQueryEvent( 'pointerUp', event, [ pointer ] );\n};\n\n/**\n * drag end\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isEnabled ) {\n return;\n }\n // use top left position when complete\n this.element.style.transform = '';\n this.setLeftTop();\n this.element.classList.remove('is-dragging');\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\n// -------------------------- animation -------------------------- //\n\nproto.animate = function() {\n // only render and animate if dragging\n if ( !this.isDragging ) {\n return;\n }\n\n this.positionDrag();\n\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n\n};\n\n// left/top positioning\nproto.setLeftTop = function() {\n this.element.style.left = this.position.x + 'px';\n this.element.style.top = this.position.y + 'px';\n};\n\nproto.positionDrag = function() {\n this.element.style.transform = 'translate3d( ' + this.dragPoint.x +\n 'px, ' + this.dragPoint.y + 'px, 0)';\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n this.dispatchEvent( 'staticClick', event, [ pointer ] );\n};\n\n// ----- methods ----- //\n\n/**\n * @param {Number} x\n * @param {Number} y\n */\nproto.setPosition = function( x, y ) {\n this.position.x = x;\n this.position.y = y;\n this.setLeftTop();\n};\n\nproto.enable = function() {\n this.isEnabled = true;\n};\n\nproto.disable = function() {\n this.isEnabled = false;\n if ( this.isDragging ) {\n this.dragEnd();\n }\n};\n\nproto.destroy = function() {\n this.disable();\n // reset styles\n this.element.style.transform = '';\n this.element.style.left = '';\n this.element.style.top = '';\n this.element.style.position = '';\n // unbind handles\n this.unbindHandles();\n // remove jQuery data\n if ( this.$element ) {\n this.$element.removeData('draggabilly');\n }\n};\n\n// ----- jQuery bridget ----- //\n\n// required for jQuery bridget\nproto._init = noop;\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'draggabilly', Draggabilly );\n}\n\n// ----- ----- //\n\nreturn Draggabilly;\n\n} ) );\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=t||self,t.XgSubtitle=e())}(this,function(){\"use strict\";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function e(t,e){return e={exports:{}},t(e,e.exports),e.exports}function n(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r}),this.resolve=F(e),this.reject=F(n)}function r(t){var e=t.length;return 3===e?(60*(60*Number(t[0])+Number(t[1]))*1e3+1e3*Number(t[2]))/1e3:2===e?(60*Number(t[0])*1e3+1e3*Number(t[1]))/1e3:Number(t[0])}function i(t){return/^(\\-|\\+)?\\d+(\\.\\d+)?$/.test(t)}function o(t){return t}function s(t,e){return t>=0&&t<e.length?e[t]:\"\"}function a(t,e){if(!t)return!1;if(t.classList)return Array.prototype.some.call(t.classList,function(t){return t===e});var n=t.className&&\"object\"===Je(t.className)?t.getAttribute(\"class\"):t.className;return n&&!!n.match(new RegExp(\"(\\\\s|^)\"+e+\"(\\\\s|$)\"))}function u(t,e){t&&(t.classList?e.replace(/(^\\s+|\\s+$)/g,\"\").split(/\\s+/g).forEach(function(e){e&&t.classList.add(e)}):a(t,e)||(t.className&&\"object\"===Je(t.className)?t.setAttribute(\"class\",t.getAttribute(\"class\")+\" \"+e):t.className+=\" \"+e))}function c(t,e){t&&(t.classList?e.split(/\\s+/g).forEach(function(e){t.classList.remove(e)}):a(t,e)&&e.split(/\\s+/g).forEach(function(e){var n=new RegExp(\"(\\\\s|^)\"+e+\"(\\\\s|$)\");t.className&&\"object\"===Je(t.className)?t.setAttribute(\"class\",t.getAttribute(\"class\").replace(n,\" \")):t.className=t.className.replace(n,\" \")}))}function l(t,e,n){var r=e.length;if(r<1)return-1;if(n=n<0?0:n>=r?r-1:n,e[n].start<=t&&t<e[n].end)return n;for(var i=e[n].end<=t?n+1:0;i<r;i++){if(e[i].start<=t&&t<e[i].end)return i;if(t>e[i].end&&i+1<r&&t<e[i+1].start)return-1;if(t>e[i].end&&i+1>=r)return-1}return-1}function f(t,e,n){var r=e.length;if(r<1)return[];var i=[];if((n=n<0?0:n>=r?r-1:n)<r)for(var o=e[n].end<=t?n:0;o<r&&(e[o].start<=t&&t<e[o].end&&i.push(o),!(t<e[o].start));o++);return i}function h(t){return Object.prototype.toString.call(t).match(/([^\\s.*]+)(?=]$)/g)[0]}function d(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"div\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"\",i=document.createElement(t);return i.className=r,i.innerHTML=e,kr(n).forEach(function(e){var r=e,o=n[e];\"video\"===t||\"audio\"===t||\"live-video\"===t?o&&i.setAttribute(r,o):i.setAttribute(r,o)}),i}function p(){var t=navigator.userAgent,e=/(?:Windows Phone)/.test(t),n=/(?:SymbianOS)/.test(t)||e,r=/(?:Android)/.test(t),i=/(?:Firefox)/.test(t),o=/(?:iPad|PlayBook)/.test(t)||r&&!/(?:Mobile)/.test(t)||i&&/(?:Tablet)/.test(t);return/(?:iPhone)/.test(t)&&!o||r||n||o}function v(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=\"\";t.map(function(t){n+=\" \"+e+\" \"+t.key+\" {\"+t.style+\"}\"});var r=document.createElement(\"style\"),i=document.head||document.getElementsByTagName(\"head\")[0];if(r.type=\"text/css\",r.id=\"ssss\",r.styleSheet){var o=function(){try{r.styleSheet.cssText=n}catch(t){}};r.styleSheet.disabled?setTimeout(o,10):o()}else{var s=document.createTextNode(n);r.appendChild(s)}i.appendChild(r)}function y(t,e){Ir||(Ir=new Lr),Ir.addObserver(t,e)}function g(t,e){Ir&&Ir.unObserver(t,e)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={code:Fr[t].code,msg:Fr[t].msg};return kr(e).map(function(t){n[t]=e[t]}),n}function _(t,e,n,r,i){i?n(m(2,i),{format:r.format}):r.format?(t.list=r.list,t.format=r.format,t.styles=r.styles,e(t)):n(m(3))}function x(t){return new xr(function(e,n){if(t.list)return void e(t);if(t.json){var r=Nr.parseJson(t.json);return t.list=r,t.format=\"json\",void e(t)}if(t.stringContent&&!t.url)Nr.parse(t.stringContent,function(r,i){_(t,e,n,r,i)});else if(t.url)new Tr({url:t.url,type:\"text\"}).then(function(r){Nr.parse(r.res.response,function(r,i){_(t,e,n,r,i)})}).catch(function(e){var r=m(1,{statusText:e.statusText,status:e.status,type:e.type,message:\"http load error\",url:t.url});n(r)});else{var i=m(8);n(i)}})}function b(t,e){return!!(t.id&&t.id===e.id||t.language&&t.language===e.language)}var k=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t},w=function(t){return Object(k(t))},T={}.hasOwnProperty,S=function(t,e){return T.call(t,e)},O=e(function(t){var e=t.exports={version:\"2.6.12\"};\"number\"==typeof __e&&(__e=e)}),E=(O.version,e(function(t){var e=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=e)})),P=e(function(t){var e=E[\"__core-js_shared__\"]||(E[\"__core-js_shared__\"]={});(t.exports=function(t,n){return e[t]||(e[t]=void 0!==n?n:{})})(\"versions\",[]).push({version:O.version,mode:\"pure\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})}),j=0,M=Math.random(),A=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++j+M).toString(36))},C=P(\"keys\"),R=function(t){return C[t]||(C[t]=A(t))},N=R(\"IE_PROTO\"),L=Object.prototype,I=Object.getPrototypeOf||function(t){return t=w(t),S(t,N)?t[N]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?L:null},F=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t},z=function(t,e,n){if(F(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}},B=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t},D=function(t){if(!B(t))throw TypeError(t+\" is not an object!\");return t},H=function(t){try{return!!t()}catch(t){return!0}},V=!H(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}),W=E.document,G=B(W)&&B(W.createElement),U=function(t){return G?W.createElement(t):{}},$=!V&&!H(function(){return 7!=Object.defineProperty(U(\"div\"),\"a\",{get:function(){return 7}}).a}),K=function(t,e){if(!B(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!B(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!B(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!B(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")},J=Object.defineProperty,Y={f:V?Object.defineProperty:function(t,e,n){if(D(t),e=K(e,!0),D(n),$)try{return J(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},X=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},q=V?function(t,e,n){return Y.f(t,e,X(1,n))}:function(t,e,n){return t[e]=n,t},Z=function(t,e,n){var r,i,o,s=t&Z.F,a=t&Z.G,u=t&Z.S,c=t&Z.P,l=t&Z.B,f=t&Z.W,h=a?O:O[e]||(O[e]={}),d=h.prototype,p=a?E:u?E[e]:(E[e]||{}).prototype;a&&(n=e);for(r in n)(i=!s&&p&&void 0!==p[r])&&S(h,r)||(o=i?p[r]:n[r],h[r]=a&&\"function\"!=typeof p[r]?n[r]:l&&i?z(o,E):f&&p[r]==o?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(o):c&&\"function\"==typeof o?z(Function.call,o):o,c&&((h.virtual||(h.virtual={}))[r]=o,t&Z.R&&d&&!d[r]&&q(d,r,o)))};Z.F=1,Z.G=2,Z.S=4,Z.P=8,Z.B=16,Z.W=32,Z.U=64,Z.R=128;var Q=Z,tt=function(t,e){var n=(O.Object||{})[t]||Object[t],r={};r[t]=e(n),Q(Q.S+Q.F*H(function(){n(1)}),\"Object\",r)};tt(\"getPrototypeOf\",function(){return function(t){return I(w(t))}});var et=O.Object.getPrototypeOf,nt=t(e(function(t){t.exports={default:et,__esModule:!0}})),rt=t(e(function(t,e){e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}})),it=Math.ceil,ot=Math.floor,st=function(t){return isNaN(t=+t)?0:(t>0?ot:it)(t)},at=q,ut={},ct={}.toString,lt=function(t){return ct.call(t).slice(8,-1)},ft=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==lt(t)?t.split(\"\"):Object(t)},ht=function(t){return ft(k(t))},dt=Math.min,pt=function(t){return t>0?dt(st(t),9007199254740991):0},vt=Math.max,yt=Math.min,gt=function(t,e){return t=st(t),t<0?vt(t+e,0):yt(t,e)},mt=function(t){return function(e,n,r){var i,o=ht(e),s=pt(o.length),a=gt(r,s);if(t&&n!=n){for(;s>a;)if((i=o[a++])!=i)return!0}else for(;s>a;a++)if((t||a in o)&&o[a]===n)return t||a||0;return!t&&-1}}(!1),_t=R(\"IE_PROTO\"),xt=function(t,e){var n,r=ht(t),i=0,o=[];for(n in r)n!=_t&&S(r,n)&&o.push(n);for(;e.length>i;)S(r,n=e[i++])&&(~mt(o,n)||o.push(n));return o},bt=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\"),kt=Object.keys||function(t){return xt(t,bt)},wt=V?Object.defineProperties:function(t,e){D(t);for(var n,r=kt(e),i=r.length,o=0;i>o;)Y.f(t,n=r[o++],e[n]);return t},Tt=E.document,St=Tt&&Tt.documentElement,Ot=R(\"IE_PROTO\"),Et=function(){},Pt=function(){var t,e=U(\"iframe\"),n=bt.length;for(e.style.display=\"none\",St.appendChild(e),e.src=\"javascript:\",(t=e.contentWindow.document).open(),t.write(\"<script>document.F=Object<\\/script>\"),t.close(),Pt=t.F;n--;)delete Pt.prototype[bt[n]];return Pt()},jt=Object.create||function(t,e){var n;return null!==t?(Et.prototype=D(t),n=new Et,Et.prototype=null,n[Ot]=t):n=Pt(),void 0===e?n:wt(n,e)},Mt=e(function(t){var e=P(\"wks\"),n=E.Symbol,r=\"function\"==typeof n;(t.exports=function(t){return e[t]||(e[t]=r&&n[t]||(r?n:A)(\"Symbol.\"+t))}).store=e}),At=Y.f,Ct=Mt(\"toStringTag\"),Rt=function(t,e,n){t&&!S(t=n?t:t.prototype,Ct)&&At(t,Ct,{configurable:!0,value:e})},Nt={};q(Nt,Mt(\"iterator\"),function(){return this});var Lt=function(t,e,n){t.prototype=jt(Nt,{next:X(1,n)}),Rt(t,e+\" Iterator\")},It=Mt(\"iterator\"),Ft=!([].keys&&\"next\"in[].keys()),zt=function(){return this},Bt=function(t,e,n,r,i,o,s){Lt(n,e,r);var a,u,c,l=function(t){if(!Ft&&t in p)return p[t];switch(t){case\"keys\":case\"values\":return function(){return new n(this,t)}}return function(){return new n(this,t)}},f=e+\" Iterator\",h=\"values\"==i,d=!1,p=t.prototype,v=p[It]||p[\"@@iterator\"]||i&&p[i],y=v||l(i),g=i?h?l(\"entries\"):y:void 0,m=\"Array\"==e?p.entries||v:v;if(m&&(c=I(m.call(new t)))!==Object.prototype&&c.next&&Rt(c,f,!0),h&&v&&\"values\"!==v.name&&(d=!0,y=function(){return v.call(this)}),s&&(Ft||d||!p[It])&&q(p,It,y),ut[e]=y,ut[f]=zt,i)if(a={values:h?y:l(\"values\"),keys:o?y:l(\"keys\"),entries:g},s)for(u in a)u in p||at(p,u,a[u]);else Q(Q.P+Q.F*(Ft||d),e,a);return a},Dt=function(t){return function(e,n){var r,i,o=String(k(e)),s=st(n),a=o.length;return s<0||s>=a?t?\"\":void 0:(r=o.charCodeAt(s),r<55296||r>56319||s+1===a||(i=o.charCodeAt(s+1))<56320||i>57343?t?o.charAt(s):r:t?o.slice(s,s+2):i-56320+(r-55296<<10)+65536)}}(!0);Bt(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=Dt(e,n),this._i+=t.length,{value:t,done:!1})});var Ht=function(t,e){return{value:e,done:!!t}};Bt(Array,\"Array\",function(t,e){this._t=ht(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,Ht(1)):\"keys\"==e?Ht(0,n):\"values\"==e?Ht(0,t[n]):Ht(0,[n,t[n]])},\"values\");ut.Arguments=ut.Array;for(var Vt=Mt(\"toStringTag\"),Wt=\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList\".split(\",\"),Gt=0;Gt<Wt.length;Gt++){var Ut=Wt[Gt],$t=E[Ut],Kt=$t&&$t.prototype;Kt&&!Kt[Vt]&&q(Kt,Vt,Ut),ut[Ut]=ut.Array}var Jt={f:Mt},Yt=Jt.f(\"iterator\"),Xt=e(function(t){t.exports={default:Yt,__esModule:!0}});t(Xt);var qt=e(function(t){var e=A(\"meta\"),n=Y.f,r=0,i=Object.isExtensible||function(){return!0},o=!H(function(){return i(Object.preventExtensions({}))}),s=function(t){n(t,e,{value:{i:\"O\"+ ++r,w:{}}})},a=function(t,n){if(!B(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!S(t,e)){if(!i(t))return\"F\";if(!n)return\"E\";s(t)}return t[e].i},u=function(t,n){if(!S(t,e)){if(!i(t))return!0;if(!n)return!1;s(t)}return t[e].w},c=function(t){return o&&l.NEED&&i(t)&&!S(t,e)&&s(t),t},l=t.exports={KEY:e,NEED:!1,fastKey:a,getWeak:u,onFreeze:c}}),Zt=(qt.KEY,qt.NEED,qt.fastKey,qt.getWeak,qt.onFreeze,Y.f),Qt=function(t){var e=O.Symbol||(O.Symbol={});\"_\"==t.charAt(0)||t in e||Zt(e,t,{value:Jt.f(t)})},te={f:Object.getOwnPropertySymbols},ee={f:{}.propertyIsEnumerable},ne=function(t){var e=kt(t),n=te.f;if(n)for(var r,i=n(t),o=ee.f,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e},re=Array.isArray||function(t){return\"Array\"==lt(t)},ie=bt.concat(\"length\",\"prototype\"),oe={f:Object.getOwnPropertyNames||function(t){return xt(t,ie)}},se=oe.f,ae={}.toString,ue=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],ce=function(t){try{return se(t)}catch(t){return ue.slice()}},le={f:function(t){return ue&&\"[object Window]\"==ae.call(t)?ce(t):se(ht(t))}},fe=Object.getOwnPropertyDescriptor,he={f:V?fe:function(t,e){if(t=ht(t),e=K(e,!0),$)try{return fe(t,e)}catch(t){}if(S(t,e))return X(!ee.f.call(t,e),t[e])}},de=qt.KEY,pe=he.f,ve=Y.f,ye=le.f,ge=E.Symbol,me=E.JSON,_e=me&&me.stringify,xe=Mt(\"_hidden\"),be=Mt(\"toPrimitive\"),ke={}.propertyIsEnumerable,we=P(\"symbol-registry\"),Te=P(\"symbols\"),Se=P(\"op-symbols\"),Oe=Object.prototype,Ee=\"function\"==typeof ge&&!!te.f,Pe=E.QObject,je=!Pe||!Pe.prototype||!Pe.prototype.findChild,Me=V&&H(function(){return 7!=jt(ve({},\"a\",{get:function(){return ve(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var r=pe(Oe,e);r&&delete Oe[e],ve(t,e,n),r&&t!==Oe&&ve(Oe,e,r)}:ve,Ae=function(t){var e=Te[t]=jt(ge.prototype);return e._k=t,e},Ce=Ee&&\"symbol\"==typeof ge.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof ge},Re=function(t,e,n){return t===Oe&&Re(Se,e,n),D(t),e=K(e,!0),D(n),S(Te,e)?(n.enumerable?(S(t,xe)&&t[xe][e]&&(t[xe][e]=!1),n=jt(n,{enumerable:X(0,!1)})):(S(t,xe)||ve(t,xe,X(1,{})),t[xe][e]=!0),Me(t,e,n)):ve(t,e,n)},Ne=function(t,e){D(t);for(var n,r=ne(e=ht(e)),i=0,o=r.length;o>i;)Re(t,n=r[i++],e[n]);return t},Le=function(t,e){return void 0===e?jt(t):Ne(jt(t),e)},Ie=function(t){var e=ke.call(this,t=K(t,!0));return!(this===Oe&&S(Te,t)&&!S(Se,t))&&(!(e||!S(this,t)||!S(Te,t)||S(this,xe)&&this[xe][t])||e)},Fe=function(t,e){if(t=ht(t),e=K(e,!0),t!==Oe||!S(Te,e)||S(Se,e)){var n=pe(t,e);return!n||!S(Te,e)||S(t,xe)&&t[xe][e]||(n.enumerable=!0),n}},ze=function(t){for(var e,n=ye(ht(t)),r=[],i=0;n.length>i;)S(Te,e=n[i++])||e==xe||e==de||r.push(e);return r},Be=function(t){for(var e,n=t===Oe,r=ye(n?Se:ht(t)),i=[],o=0;r.length>o;)!S(Te,e=r[o++])||n&&!S(Oe,e)||i.push(Te[e]);return i};Ee||(at((ge=function(){if(this instanceof ge)throw TypeError(\"Symbol is not a constructor!\");var t=A(arguments.length>0?arguments[0]:void 0),e=function(n){this===Oe&&e.call(Se,n),S(this,xe)&&S(this[xe],t)&&(this[xe][t]=!1),Me(this,t,X(1,n))};return V&&je&&Me(Oe,t,{configurable:!0,set:e}),Ae(t)}).prototype,\"toString\",function(){return this._k}),he.f=Fe,Y.f=Re,oe.f=le.f=ze,ee.f=Ie,te.f=Be,Jt.f=function(t){return Ae(Mt(t))}),Q(Q.G+Q.W+Q.F*!Ee,{Symbol:ge});for(var De=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),He=0;De.length>He;)Mt(De[He++]);for(var Ve=kt(Mt.store),We=0;Ve.length>We;)Qt(Ve[We++]);Q(Q.S+Q.F*!Ee,\"Symbol\",{for:function(t){return S(we,t+=\"\")?we[t]:we[t]=ge(t)},keyFor:function(t){if(!Ce(t))throw TypeError(t+\" is not a symbol!\");for(var e in we)if(we[e]===t)return e},useSetter:function(){je=!0},useSimple:function(){je=!1}}),Q(Q.S+Q.F*!Ee,\"Object\",{create:Le,defineProperty:Re,defineProperties:Ne,getOwnPropertyDescriptor:Fe,getOwnPropertyNames:ze,getOwnPropertySymbols:Be});var Ge=H(function(){te.f(1)});Q(Q.S+Q.F*Ge,\"Object\",{getOwnPropertySymbols:function(t){return te.f(w(t))}}),me&&Q(Q.S+Q.F*(!Ee||H(function(){var t=ge();return\"[null]\"!=_e([t])||\"{}\"!=_e({a:t})||\"{}\"!=_e(Object(t))})),\"JSON\",{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(B(e)||void 0!==t)&&!Ce(t))return re(e)||(e=function(t,e){if(\"function\"==typeof n&&(e=n.call(this,t,e)),!Ce(e))return e}),r[1]=e,_e.apply(me,r)}}),ge.prototype[be]||q(ge.prototype,be,ge.prototype.valueOf),Rt(ge,\"Symbol\"),Rt(Math,\"Math\",!0),Rt(E.JSON,\"JSON\",!0),Qt(\"asyncIterator\"),Qt(\"observable\");var Ue=O.Symbol,$e=e(function(t){t.exports={default:Ue,__esModule:!0}});t($e);var Ke=e(function(t,e){function n(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=n(Xt),i=n($e),o=\"function\"==typeof i.default&&\"symbol\"==typeof r.default?function(t){return typeof t}:function(t){return t&&\"function\"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?\"symbol\":typeof t};e.default=\"function\"==typeof i.default&&\"symbol\"===o(r.default)?function(t){return void 0===t?\"undefined\":o(t)}:function(t){return t&&\"function\"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?\"symbol\":void 0===t?\"undefined\":o(t)}}),Je=t(Ke),Ye=t(e(function(t,e){e.__esModule=!0;var n=function(t){return t&&t.__esModule?t:{default:t}}(Ke);e.default=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!==(void 0===e?\"undefined\":(0,n.default)(e))&&\"function\"!=typeof e?t:e}}));Q(Q.S+Q.F*!V,\"Object\",{defineProperty:Y.f});var Xe=O.Object,qe=function(t,e,n){return Xe.defineProperty(t,e,n)},Ze=e(function(t){t.exports={default:qe,__esModule:!0}});t(Ze);var Qe=t(e(function(t,e){e.__esModule=!0;var n=function(t){return t&&t.__esModule?t:{default:t}}(Ze);e.default=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),(0,n.default)(t,i.key,i)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()})),tn=function(t,e){if(D(t),!B(e)&&null!==e)throw TypeError(e+\": can't set as prototype!\")},en={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(t,e,n){try{(n=z(Function.call,he.f(Object.prototype,\"__proto__\").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,r){return tn(t,r),e?t.__proto__=r:n(t,r),t}}({},!1):void 0),check:tn};Q(Q.S,\"Object\",{setPrototypeOf:en.set});var nn=O.Object.setPrototypeOf,rn=e(function(t){t.exports={default:nn,__esModule:!0}});t(rn),Q(Q.S,\"Object\",{create:jt});var on=O.Object,sn=function(t,e){return on.create(t,e)},an=e(function(t){t.exports={default:sn,__esModule:!0}});t(an);var un,cn,ln,fn=t(e(function(t,e){function n(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=n(rn),i=n(an),o=n(Ke);e.default=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+(void 0===e?\"undefined\":(0,o.default)(e)));t.prototype=(0,i.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(r.default?(0,r.default)(t,e):t.__proto__=e)}})),hn=Mt(\"toStringTag\"),dn=\"Arguments\"==lt(function(){return arguments}()),pn=function(t,e){try{return t[e]}catch(t){}},vn=function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=pn(e=Object(t),hn))?n:dn?lt(e):\"Object\"==(r=lt(e))&&\"function\"==typeof e.callee?\"Arguments\":r},yn=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+\": incorrect invocation!\");return t},gn=function(t,e,n,r){try{return r?e(D(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&D(i.call(t)),e}},mn=Mt(\"iterator\"),_n=Array.prototype,xn=function(t){return void 0!==t&&(ut.Array===t||_n[mn]===t)},bn=Mt(\"iterator\"),kn=O.getIteratorMethod=function(t){if(void 0!=t)return t[bn]||t[\"@@iterator\"]||ut[vn(t)]},wn=e(function(t){var e={},n={},r=t.exports=function(t,r,i,o,s){var a,u,c,l,f=s?function(){return t}:kn(t),h=z(i,o,r?2:1),d=0;if(\"function\"!=typeof f)throw TypeError(t+\" is not iterable!\");if(xn(f)){for(a=pt(t.length);a>d;d++)if((l=r?h(D(u=t[d])[0],u[1]):h(t[d]))===e||l===n)return l}else for(c=f.call(t);!(u=c.next()).done;)if((l=gn(c,h,u.value,r))===e||l===n)return l};r.BREAK=e,r.RETURN=n}),Tn=Mt(\"species\"),Sn=function(t,e){var n,r=D(t).constructor;return void 0===r||void 0==(n=D(r)[Tn])?e:F(n)},On=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)},En=E.process,Pn=E.setImmediate,jn=E.clearImmediate,Mn=E.MessageChannel,An=E.Dispatch,Cn=0,Rn={},Nn=function(){var t=+this;if(Rn.hasOwnProperty(t)){var e=Rn[t];delete Rn[t],e()}},Ln=function(t){Nn.call(t.data)};Pn&&jn||(Pn=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Rn[++Cn]=function(){On(\"function\"==typeof t?t:Function(t),e)},un(Cn),Cn},jn=function(t){delete Rn[t]},\"process\"==lt(En)?un=function(t){En.nextTick(z(Nn,t,1))}:An&&An.now?un=function(t){An.now(z(Nn,t,1))}:Mn?(ln=(cn=new Mn).port2,cn.port1.onmessage=Ln,un=z(ln.postMessage,ln,1)):E.addEventListener&&\"function\"==typeof postMessage&&!E.importScripts?(un=function(t){E.postMessage(t+\"\",\"*\")},E.addEventListener(\"message\",Ln,!1)):un=\"onreadystatechange\"in U(\"script\")?function(t){St.appendChild(U(\"script\")).onreadystatechange=function(){St.removeChild(this),Nn.call(t)}}:function(t){setTimeout(z(Nn,t,1),0)});var In={set:Pn,clear:jn},Fn=In.set,zn=E.MutationObserver||E.WebKitMutationObserver,Bn=E.process,Dn=E.Promise,Hn=\"process\"==lt(Bn),Vn={f:function(t){return new n(t)}},Wn=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}},Gn=E.navigator,Un=Gn&&Gn.userAgent||\"\",$n=function(t,e){if(D(t),B(e)&&e.constructor===t)return e;var n=Vn.f(t);return(0,n.resolve)(e),n.promise},Kn=Mt(\"species\"),Jn=Mt(\"iterator\"),Yn=!1;try{var Xn=[7][Jn]();Xn.return=function(){Yn=!0},Array.from(Xn,function(){throw 2})}catch(t){}var qn,Zn,Qn,tr,er=In.set,nr=function(){var t,e,n,r=function(){var r,i;for(Hn&&(r=Bn.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(Hn)n=function(){Bn.nextTick(r)};else if(!zn||E.navigator&&E.navigator.standalone)if(Dn&&Dn.resolve){var i=Dn.resolve(void 0);n=function(){i.then(r)}}else n=function(){Fn.call(E,r)};else{var o=!0,s=document.createTextNode(\"\");new zn(r).observe(s,{characterData:!0}),n=function(){s.data=o=!o}}return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}(),rr=E.TypeError,ir=E.process,or=ir&&ir.versions,sr=or&&or.v8||\"\",ar=E.Promise,ur=\"process\"==vn(ir),cr=function(){},lr=Zn=Vn.f,fr=!!function(){try{var t=ar.resolve(1),e=(t.constructor={})[Mt(\"species\")]=function(t){t(cr,cr)};return(ur||\"function\"==typeof PromiseRejectionEvent)&&t.then(cr)instanceof e&&0!==sr.indexOf(\"6.6\")&&-1===Un.indexOf(\"Chrome/66\")}catch(t){}}(),hr=function(t){var e;return!(!B(t)||\"function\"!=typeof(e=t.then))&&e},dr=function(t,e){if(!t._n){t._n=!0;var n=t._c;nr(function(){for(var r=t._v,i=1==t._s,o=0;n.length>o;)!function(e){var n,o,s,a=i?e.ok:e.fail,u=e.resolve,c=e.reject,l=e.domain;try{a?(i||(2==t._h&&yr(t),t._h=1),!0===a?n=r:(l&&l.enter(),n=a(r),l&&(l.exit(),s=!0)),n===e.promise?c(rr(\"Promise-chain cycle\")):(o=hr(n))?o.call(n,u,c):u(n)):c(r)}catch(t){l&&!s&&l.exit(),c(t)}}(n[o++]);t._c=[],t._n=!1,e&&!t._h&&pr(t)})}},pr=function(t){er.call(E,function(){var e,n,r,i=t._v,o=vr(t);if(o&&(e=Wn(function(){ur?ir.emit(\"unhandledRejection\",i,t):(n=E.onunhandledrejection)?n({promise:t,reason:i}):(r=E.console)&&r.error&&r.error(\"Unhandled promise rejection\",i)}),t._h=ur||vr(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},vr=function(t){return 1!==t._h&&0===(t._a||t._c).length},yr=function(t){er.call(E,function(){var e;ur?ir.emit(\"rejectionHandled\",t):(e=E.onrejectionhandled)&&e({promise:t,reason:t._v})})},gr=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),dr(e,!0))},mr=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw rr(\"Promise can't be resolved itself\");(e=hr(t))?nr(function(){var r={_w:n,_d:!1};try{e.call(t,z(mr,r,1),z(gr,r,1))}catch(t){gr.call(r,t)}}):(n._v=t,n._s=1,dr(n,!1))}catch(t){gr.call({_w:n,_d:!1},t)}}};fr||(ar=function(t){yn(this,ar,\"Promise\",\"_h\"),F(t),qn.call(this);try{t(z(mr,this,1),z(gr,this,1))}catch(t){gr.call(this,t)}},(qn=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=function(t,e,n){for(var r in e)n&&t[r]?t[r]=e[r]:q(t,r,e[r]);return t}(ar.prototype,{then:function(t,e){var n=lr(Sn(this,ar));return n.ok=\"function\"!=typeof t||t,n.fail=\"function\"==typeof e&&e,n.domain=ur?ir.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&dr(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),Qn=function(){var t=new qn;this.promise=t,this.resolve=z(mr,t,1),this.reject=z(gr,t,1)},Vn.f=lr=function(t){return t===ar||t===tr?new Qn(t):Zn(t)}),Q(Q.G+Q.W+Q.F*!fr,{Promise:ar}),Rt(ar,\"Promise\"),function(t){var e=\"function\"==typeof O[t]?O[t]:E[t];V&&e&&!e[Kn]&&Y.f(e,Kn,{configurable:!0,get:function(){return this}})}(\"Promise\"),tr=O.Promise,Q(Q.S+Q.F*!fr,\"Promise\",{reject:function(t){var e=lr(this);return(0,e.reject)(t),e.promise}}),Q(Q.S+!0*Q.F,\"Promise\",{resolve:function(t){return $n(this===tr?ar:this,t)}}),Q(Q.S+Q.F*!(fr&&function(t,e){if(!e&&!Yn)return!1;var n=!1;try{var r=[7],i=r[Jn]();i.next=function(){return{done:n=!0}},r[Jn]=function(){return i},t(r)}catch(t){}return n}(function(t){ar.all(t).catch(cr)})),\"Promise\",{all:function(t){var e=this,n=lr(e),r=n.resolve,i=n.reject,o=Wn(function(){var n=[],o=0,s=1;wn(t,!1,function(t){var a=o++,u=!1;n.push(void 0),s++,e.resolve(t).then(function(t){u||(u=!0,n[a]=t,--s||r(n))},i)}),--s||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=lr(e),r=n.reject,i=Wn(function(){wn(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}}),Q(Q.P+Q.R,\"Promise\",{finally:function(t){var e=Sn(this,O.Promise||E.Promise),n=\"function\"==typeof t;return this.then(n?function(n){return $n(e,t()).then(function(){return n})}:t,n?function(n){return $n(e,t()).then(function(){throw n})}:t)}}),Q(Q.S,\"Promise\",{try:function(t){var e=Vn.f(this),n=Wn(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}});var _r=O.Promise,xr=t(e(function(t){t.exports={default:_r,__esModule:!0}}));tt(\"keys\",function(){return function(t){return kt(w(t))}});var br=O.Object.keys,kr=t(e(function(t){t.exports={default:br,__esModule:!0}})),wr=e(function(t){function e(){}function n(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function r(t,e,r,i,o){if(\"function\"!=typeof r)throw new TypeError(\"The listener must be a function\");var s=new n(r,i||t,o),u=a?a+e:e;return t._events[u]?t._events[u].fn?t._events[u]=[t._events[u],s]:t._events[u].push(s):(t._events[u]=s,t._eventsCount++),t}function i(t,n){0==--t._eventsCount?t._events=new e:delete t._events[n]}function o(){this._events=new e,this._eventsCount=0}var s=Object.prototype.hasOwnProperty,a=\"~\";Object.create&&(e.prototype=Object.create(null),(new e).__proto__||(a=!1)),o.prototype.eventNames=function(){var t,e,n=[];if(0===this._eventsCount)return n;for(e in t=this._events)s.call(t,e)&&n.push(a?e.slice(1):e);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},o.prototype.listeners=function(t){var e=a?a+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,i=n.length,o=new Array(i);r<i;r++)o[r]=n[r].fn;return o},o.prototype.listenerCount=function(t){var e=a?a+t:t,n=this._events[e];return n?n.fn?1:n.length:0},o.prototype.emit=function(t,e,n,r,i,o){var s=a?a+t:t;if(!this._events[s])return!1;var u,c,l=this._events[s],f=arguments.length;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),f){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,n),!0;case 4:return l.fn.call(l.context,e,n,r),!0;case 5:return l.fn.call(l.context,e,n,r,i),!0;case 6:return l.fn.call(l.context,e,n,r,i,o),!0}for(c=1,u=new Array(f-1);c<f;c++)u[c-1]=arguments[c];l.fn.apply(l.context,u)}else{var h,d=l.length;for(c=0;c<d;c++)switch(l[c].once&&this.removeListener(t,l[c].fn,void 0,!0),f){case 1:l[c].fn.call(l[c].context);break;case 2:l[c].fn.call(l[c].context,e);break;case 3:l[c].fn.call(l[c].context,e,n);break;case 4:l[c].fn.call(l[c].context,e,n,r);break;default:if(!u)for(h=1,u=new Array(f-1);h<f;h++)u[h-1]=arguments[h];l[c].fn.apply(l[c].context,u)}}return!0},o.prototype.on=function(t,e,n){return r(this,t,e,n,!1)},o.prototype.once=function(t,e,n){return r(this,t,e,n,!0)},o.prototype.removeListener=function(t,e,n,r){var o=a?a+t:t;if(!this._events[o])return this;if(!e)return i(this,o),this;var s=this._events[o];if(s.fn)s.fn!==e||r&&!s.once||n&&s.context!==n||i(this,o);else{for(var u=0,c=[],l=s.length;u<l;u++)(s[u].fn!==e||r&&!s[u].once||n&&s[u].context!==n)&&c.push(s[u]);c.length?this._events[o]=1===c.length?c[0]:c:i(this,o)}return this},o.prototype.removeAllListeners=function(t){var n;return t?(n=a?a+t:t,this._events[n]&&i(this,n)):(this._events=new e,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=a,o.EventEmitter=o,t.exports=o}),Tr=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url,r=e.method,i=void 0===r?\"GET\":r,o=e.type,s=void 0===o?\"arraybuffer\":o,a=e.timeout,u=void 0===a?1e4:a,c=e.data,l=void 0===c?{}:c,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return rt(this,t),new xr(function(t,e){var r=new window.XMLHttpRequest,o=i.toUpperCase(),a=[];s&&(r.responseType=s),u&&(r.timeout=u);for(var c in l)a.push(\"k=\"+l[c]);if(r.onload=function(){200===r.status||206===r.status?t({context:f,res:r}):e(new Error({context:f,res:r,type:\"error\"}))},r.onerror=function(t){e(new Error({context:f,res:r,type:\"error\"}))},r.ontimeout=function(t){e(new Error({context:f,res:r,type:\"error\"}))},r.onabort=function(){e(new Error({context:f,res:r,type:\"error\"}))},\"GET\"===o)r.open(o,\"\"+n),r.send();else{if(\"post\"!==o)throw new Error(\"xhr \"+o+\" is not supported\");r.open(o,n),r.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"),r.send(a.join(\"&\"))}})},Sr=/^WEBVTT/,Or=/^STYLE+$/,Er=/^\\:\\:cue/,Pr=/^}+$/,jr=/^\\[Script Info\\].*/,Mr=[/[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}-->[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}/,/[0-9]{2}:[0-9]{2}\\.[0-9]{3}-->[0-9]{2}:[0-9]{2}\\.[0-9]{3}/,/[0-9]{2}\\.[0-9]{3}-->[0-9]{2}\\.[0-9]{3}/],Ar=/^Format:\\s/,Cr=/^Style:\\s/,Rr=/^Dialogue:\\s/,Nr=function(){function t(){rt(this,t)}return Qe(t,null,[{key:\"parseJson\",value:function(t){for(var e=[],n=0,r=0;r<t.length;r++){if(n>=50&&(n=0),0===n){var i={start:t[r].start,list:[t[r]],end:t[r].end};e.push(i)}else e[e.length-1].list.push(t[r]),e[e.length-1].end=t[r].end;n++}return e}},{key:\"parse\",value:function(e,n){var r=t.checkFormat(e);r||n({format:r});try{var i=[];\"ass\"===r?i=t.parseASS(e):\"vtt\"===r&&(i=t.parseVTT(e)),n({format:r,list:i.list,styles:i.styles})}catch(t){console.error(t),n({format:r},t)}}},{key:\"parseASSItem\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=t.split(\",\"),i={},s=\"\";try{var a=n.length-e.length;return s=a>0?n.splice(e.length-1,a+1).join(\",\")+\"\":n[n.length-1]+\"\",s=s.replace(/\\\\n+/g,\"\"),s=o(s),n[e.length-1]=s,e.map(function(t,e){\"end\"===t||\"start\"===t?i[t]=r(n[e].split(\":\")):\"text\"===t?i[t]=[n[e]]:\"layer\"===t?(i[t]=[n[e]],i.textTag=[n[e]]):i[t]=\"style\"===t?[n[e]]:Number(n[e])?Number(n[e]):n[e]}),i}catch(t){return console.error(t),{}}}},{key:\"parseASS\",value:function(e){for(var n=e.split(\"\\n\"),r=[],i=0,o=0,s=[],a=[],u=null;i<n.length;){if(Ar.test(n[i]))a=(a=n[i].replace(Ar,\"\").replace(/\\s+/g,\"\").split(\",\")).map(function(t){return t.toLocaleLowerCase()});else if(Cr.test(n[i]))s.push(n[i].replace(Cr,\"\").replace(/\\s+/g,\"\"));else if(Rr.test(n[i])){var c=t.parseASSItem(n[i].replace(Rr,\"\"),a);if(u&&c.start===u.start&&c.end===u.end)try{var l=u,f=l.text,h=l.textTag,d=l.style;f.push(c.text[0]),h.push(c.textTag[0]),d.push(c.style[0])}catch(t){console.error(t)}else{u=c;var p=null;o%50==0?((p={start:u.start,end:u.end,list:[]}).list.push(u),r.push(p)):((p=r[r.length-1]).end=u.end,p.list.push(u)),o++}}i++}return{list:r,style:{}}}},{key:\"parseVTTStyle\",value:function(t,e){var n=t.split(\":\");if(n.length>1){var r=n[0].trim().split(\"-\"),i=\"\";r.length>1?r.map(function(t,e){i+=0===e?t:t.charAt(0).toUpperCase()+t.slice(1)}):i=r[0],e[i]=n[1].trim().replace(/;$/,\"\")}return e}},{key:\"parseVTT\",value:function(t){for(var e=(t=t.replace(Sr,\"\")).split(\"\\n\"),n=[],r=0,o=0,a=null,u=!1,c=!1,l=null,f=null,h=[];r<e.length;){var d=s(r,e).trim();if(!d||u&&i(d))u=!d;else if(Er.test(d)&&Or.test(s(r-1,e).trim())){c=!0;var p=/\\((.+?)\\)/g.exec(d);f=p?p[1]:\"\",l=\"\"}else if(c)Pr.test(d)?(h.push({key:f,style:l}),l=null,f=null,c=!1):l+=d;else if(d){u=!1;var v=this.checkIsTime(e[r]);if(v){var y=this.parseVttTime(v);if(!a||y.start!==a.start||y.end!==a.end){(a=y).text=[],a.textTag=[];var g=null;o%50==0?((g={start:a.start,end:a.end,list:[]}).list.push(a),n.push(g)):((g=n[n.length-1]).end=a.end,g.list.push(a)),o++}}else if(a){var m=a,_=m.text,x=m.textTag,b=this.parseVttText(e[r]);_.push(b.text),x.push(b.tag)}u=!1}r++}return{list:n,styles:h}}},{key:\"checkIsTime\",value:function(t){t=t.replace(/\\s+/g,\"\");for(var e=0,n=null;e<Mr.length&&!(n=Mr[e].exec(t));)e++;return n?n[0]:null}},{key:\"parseVttText\",value:function(t){var e=/^(<?.+?>)/g.exec(t),n=\"\",r=\"default\";if(e){r=e[0].replace(/\\<|\\>|\\&/g,\"\");var i=RegExp(\"^<\"+r+\">(([\\\\s\\\\S])*?)</\"+r+\">$\").exec(t);i?n=i[1]:(n=t,r=\"\")}else n=t;for(var s=/<(\\w+).(\\w+)>/g,a=s.exec(n);a&&a.length>2;)n=n.replace(a[0],\"<\"+a[1]+' class=\"'+a[2]+'\">'),a=s.exec(n);return{tag:r,text:o(n.replace(/\\\\n+/g,\"<br/>\"))}}},{key:\"parseVttTime\",value:function(t){var e=t.split(\"--\\x3e\"),n=void 0,i=0;if(2===e.length){var o=e[0].split(\":\"),s=e[1].split(\":\");n=r(o),i=r(s)}return{start:n,end:i,time:t}}},{key:\"isVTT\",value:function(t){return Sr.test(t)}},{key:\"isASS\",value:function(t){return jr.test(t)}},{key:\"checkFormat\",value:function(t){return t?Sr.test(t)?\"vtt\":jr.test(t)?\"ass\":null:null}}]),t}(),Lr=function(){function t(){var e=this;rt(this,t),this.__handlers=[],window.ResizeObserver&&(this.observer=new window.ResizeObserver(function(t){e.__trigger(t)}))}return Qe(t,[{key:\"addObserver\",value:function(t,e){if(this.observer){this.observer&&this.observer.observe(t);for(var n=this.__handlers,r=-1,i=0;i<n.length;i++)n[i]&&t===n[i].target&&(r=i);r>-1?this.__handlers[r].handler.push(e):this.__handlers.push({target:t,handler:[e]})}}},{key:\"unObserver\",value:function(t){var e=-1;this.__handlers.map(function(n,r){t===n.target&&(e=r)}),this.observer&&this.observer.unobserve(t),e>-1&&this.__handlers.splice(e,1)}},{key:\"destroyObserver\",value:function(){this.observer&&this.observer.disconnect(),this.observer=null,this.__handlers=null}},{key:\"__runHandler\",value:function(t,e){for(var n=this.__handlers,r=0;r<n.length;r++)if(n[r]&&t===n[r].target){n[r].handler&&n[r].handler.map(function(n){try{n(t,e)}catch(t){console.error(t)}});break}}},{key:\"__trigger\",value:function(t){var e=this;t.map(function(t){var n=t.contentRect;e.__runHandler(t.target,n)})}}]),t}(),Ir=null;!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&\"undefined\"!=typeof document){var r=document.head||document.getElementsByTagName(\"head\")[0],i=document.createElement(\"style\");i.type=\"text/css\",\"top\"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}('xg-text-track.xg-text-track {\\n font-family: \"PingFang SC\",\"SF Pro SC\",\"SF Pro Text\",\"SF Pro Icons\",\"Helvetica Neue\",\"Helvetica\",\"Arial\",sans-serif;\\n -webkit-font-smoothing: antialiased;\\n position: absolute;\\n bottom: 0;\\n color: #fff;\\n left: 0;\\n right: 0;\\n pointer-events: none;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center; }\\n xg-text-track.xg-text-track.text-track-no-fitvideo {\\n margin-bottom: 2%; }\\n xg-text-track.xg-text-track.text-track-hide {\\n opacity: 0;\\n visibility: hidden; }\\n xg-text-track.xg-text-track.text-track-show {\\n opacity: 1;\\n visibility: visible; }\\n xg-text-track.xg-text-track xg-text-track-inner {\\n display: block;\\n max-width: 92%; }\\n xg-text-track.xg-text-track xg-text-track-span {\\n display: -webkit-box;\\n text-align: center;\\n text-overflow: ellipsis;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n padding: 1px 4px;\\n -webkit-line-clamp: 1;\\n line-height: 120%;\\n word-break: break-word; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-deputy {\\n font-size: 75%; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-single {\\n -webkit-line-clamp: 1; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-double {\\n -webkit-line-clamp: 2; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-three {\\n -webkit-line-clamp: 3; }\\n xg-text-track.xg-text-track.text-track-bg xg-text-track-inner {\\n background-color: rgba(0, 0, 0, .54);\\n border-radius: 2px; }\\n xg-text-track.xg-text-track.text-track-stroke xg-text-track-inner {\\n background-color: none;\\n border-radius: 0;\\n text-shadow: -1px 1px 0 rgba(0, 0, 0, .7), 1px 1px 0 rgba(0, 0, 0, .7), 1px -1px 0 rgba(0, 0, 0, .7), -1px -1px 0 rgba(0, 0, 0, .7); }\\n');var Fr=[{code:0,msg:\"SUCCESS\"},{code:1,msg:\"LOAD_ERROR\"},{code:2,msg:\"PARSER_ERROR\"},{code:3,msg:\"FORMAT_NOT_SUPPORTED\"},{code:4,msg:\"ID_OR_LANGUAGE_NOT_EXIST\"},{code:5,msg:\"PARAMETERS_ERROR\"},{code:6,msg:\"ABORT\"},{code:7,msg:\"UNKNOWN\"},{code:8,msg:\"DATA_ERROR:subtitle.url is null\"}],zr={RESIZE:\"resize\"},Br=!1;return function(t){function e(t){rt(this,e);var n=Ye(this,(e.__proto__||nt(e)).call(this));return Br=p(),n.currentText=null,n.textTrack=[],n._cid=-1,n._gid=-1,n._cids=[],n._iId=null,n._iC=0,n.player=null,n.root=null,n.config={line:\"double\",bottom:0,mode:\"stroke\",defaultOpen:!1,baseSizeX:49,baseSizeY:28,minSize:16,minMobileSize:13,fitVideo:!0,offsetBottom:2,fontColor:\"#fff\"},n._ctime=0,n._loadingTrack={},kr(n.config).map(function(e){void 0!==t[e]&&null!==t[e]&&(n.config[e]=t[e])}),n._isOpen=!1,n._videoMeta={scale:0,videoHeight:0,videoWidth:0,lwidth:0,lheight:0,vWidth:0,vHeight:0,vBottom:0,vLeft:0,marginBottom:0},t.subTitles&&\"Array\"===h(t.subTitles)?(t.player&&n.attachPlayer(t.player),n.setSubTitles(t.subTitles,n.config.defaultOpen),n):Ye(n)}return fn(e,t),Qe(e,[{key:\"version\",get:function(){return\"1.0.12\"}}]),Qe(e,[{key:\"setSubTitles\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=this._isOpen||n;r&&this.innerRoot&&this.switchOff(),this.currentText=null,this.textTrack=[],t.map(function(t){var n={};kr(t).map(function(e){n[e]=t[e]}),n.isDefault&&(e.currentText=n),e.textTrack.push(n)}),this.currentText&&x(this.currentText).then(function(t){e.addStyles(t),i&&e.switch()})}},{key:\"addStyles\",value:function(t){var e=t.styles,n=t.format;e&&\"vtt\"===n&&(e.map(function(t){t.key||(t.key=\"xg-text-track-span\")}),v(e,\"xg-text-track\"))}},{key:\"attachPlayer\",value:function(t){var e=this;if(t){this.player&&this.detachPlayer();var n=this.config,r=n.fontColor,i=n.mode,o=n.fitVideo;this.player=t,this.root=document.createElement(\"xg-text-track\"),this.root.className=\"xg-text-track\",!this._isOpen&&u(this.root,\"text-track-hide\"),!o&&u(this.root,\"text-track-no-fitvideo\"),i&&u(this.root,\"text-track-\"+i),this.innerRoot=document.createElement(\"xg-text-track-inner\"),this.root.appendChild(this.innerRoot),r&&(this.root.style.color=r),this.currentText&&[\"language\",\"id\",\"label\"].map(function(t){e.root.setAttribute(\"data-\"+t,e.currentText[t]||\"\")}),this.player.root.appendChild(this.root),[\"destroy\",\"__onTimeupdate\",\"_onResize\"].map(function(t){e[t]=e[t].bind(e)}),this.player.on(\"destroy\",this.destroy),this.player.on(\"timeupdate\",this.__onTimeupdate),this._isOpen&&this.switch(),y(t.root,this._onResize)}}},{key:\"detachPlayer\",value:function(){var t=this.player;t&&(t.off(\"destroy\",this.destroy),t.off(\"timeupdate\",this.__onTimeupdate),t.root&&(g(t.root,this._onResize),t.root.removeChild(this.root)),this.innerRoot=null,this.root=null,this.player=null)}},{key:\"switch\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:\"\",language:\"\"};return this._loadingTrack=e,new xr(function(n,r){if(!e.id&&!e.language){if(t.currentText){t._loadingTrack={},t._updateCurrent(t.currentText),t._isOpen=!0,t.show();var i=m(0,{message:\"switch default subtitle success\"});return void n(i)}var o=m(5,{message:\"no default subtitle\"});return void r(o)}if(t.currentText&&b(e,t.currentText))t._loadingTrack={},t._updateCurrent(t.currentText),t._isOpen=!0,t.show(),n(m(0));else{for(var s=null,a=0;a<t.textTrack.length;a++)if(b(e,t.textTrack[a])){s=t.textTrack[a];break}if(s)s.list?(t._loadingTrack={},t._updateCurrent(s),t._isOpen=!0,t.show(),n(m(0))):x(s).then(function(e){if(t.addStyles(e),t._loadingTrack.id===s.id||t._loadingTrack.language===e.language)t._loadingTrack={},t._updateCurrent(e),t._isOpen=!0,t.show(),n(m(0));else{var i=m(6,{message:\"check _loadingTrack fail id: \"+t._loadingTrack.id+\" nextSubtitle:\"+e.id});console.trace(i),r(i)}}).catch(function(t){r(t)});else{var u=m(4,new Error(\"The is no subtitle with id:[{\"+e.id+\"}] or language:[\"+e.language+\"]\"));console.trace(u),r(u)}}})}},{key:\"switchOff\",value:function(){this._isOpen=!1,this.hide()}},{key:\"_updateCurrent\",value:function(t){var e=this;if(this.root){this.currentText=t,[\"language\",\"id\",\"label\"].map(function(t){e.root.setAttribute(\"data-\"+t,e.currentText[t]||\"\")}),this.__remove(this._cids);var n=this.player.currentTime;this._cids=[],this._gid=-1,this._cid=-1,this._update(n)}}},{key:\"__loadAll\",value:function(){this.textTrack.map(function(t){x(t)})}},{key:\"getDelCid\",value:function(t,e){for(var n=[],r=0;r<t.length;r++)e.includes(t[r])||n.push(t[r]);return n}},{key:\"getNewCid\",value:function(t,e){for(var n=[],r=0;r<e.length;r++)t.includes(e[r])||n.push(e[r]);return n}},{key:\"_update\",value:function(t){var e=this,n=l(t,this.currentText.list,this._gid),r=[];if(n>-1&&(r=f(t,this.currentText.list[n].list,this._cid)),r.length<1)return this._cids.length>0&&this.__remove(this._cids),void(this._cids=[]);if(this._cids!==r||n!==this._gid){this._gid=n,this._cid=r[0];var i=this.getDelCid(this._cids,r),o=this.getNewCid(this._cids,r);this._cids=r,this.__remove(i);var s=[];o.map(function(t){var r=e.currentText.list[n].list[t];r.index=t,s.push(r)}),this.__render(s,t)}}},{key:\"__onTimeupdate\",value:function(){if(this._isOpen){var t=this.player.video,e=t.videoWidth,n=t.videoHeight;!this._videoMeta.scale&&e&&n&&this._onResize(this.player.root);var r=this.player.currentTime;Math.round(Math.abs(1e3*r-this._ctime))<200||(this._ctime=1e3*r,this.currentText&&this.currentText.list&&this._update(r))}}},{key:\"_onResize\",value:function(t){var e=this._videoMeta;if(t&&t instanceof window.Element||(t=this.player.root),this._iId&&(clearTimeout(this._iId),this._iId=null),!e.scale){if(!this.player.video)return;var n=this.player.video,r=n.videoWidth,i=n.videoHeight;if(!r||!i)return;e.videoWidth=r,e.videoHeight=i,e.scale=parseInt(i/r*100,10)}this.__startResize(t)}},{key:\"resize\",value:function(t,e){var n=this,r=this.config,i=r.baseSizeX,o=r.baseSizeY,s=r.minMobileSize,a=r.minSize,u=r.fitVideo,c=r.offsetBottom,l=this._videoMeta.scale;this._videoMeta.lwidth=t,this._videoMeta.lheight=e;var f=void 0,h=0;e/t*100>=l?(h=parseInt(l*t,10)/100,f=t):(h=e,f=parseInt(e/l*100,10)),this._videoMeta.vWidth=f,this._videoMeta.vHeight=h;var d=0,p=0;l>120?(d=o,p=parseInt(d*h/1080,10)):(d=i,p=parseInt(d*f/1920,10));var v=Br?s:a,y={fontSize:p=p<v?v:p>d?d:p},g=parseInt((e-h)/2,10),m=parseInt((t-f)/2,10),_=parseInt(h*c,10)/100;this._videoMeta.vBottom=g,this._videoMeta.vLeft=m,this._videoMeta.marginBottom=_,u&&(y.bottom=g+_,y.left=y.right=m),kr(y).map(function(t){n.root.style[t]=y[t]+\"px\"}),this.emit(zr.RESIZE,{vLeft:m,vBottom:g,marginBottom:_,vWidth:f,vHeight:h,fontSize:p,scale:l})}},{key:\"__startResize\",value:function(t){var e=this,n=t.getBoundingClientRect(),r=this._videoMeta,i=n.width,o=n.height;if(this._iId&&(clearTimeout(this._iId),this._iId=null),i>0&&o>0&&(i!==r.lwidth||o!==r.lheight))this._iC=0,this.resize(i,o);else{if(this._iC>=5)return void(this._iC=0);this._iC++,this._iId=setTimeout(function(){e.__startResize(t)},50)}}},{key:\"__remove\",value:function(t){var e=this;if(t&&!(t.length<1)){for(var n=this.innerRoot.children,r=[],i=0;i<n.length;i++){var o=Number(n[i].getAttribute(\"data-index\"));t.includes(o)&&r.push(n[i])}r.map(function(t){e.innerRoot.removeChild(t)})}}},{key:\"__render\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.length>0&&e.map(function(e){var n=\"text-track-\"+t.config.line;e.text.map(function(r,i){i>0&&(n+=\" text-track-deputy\");var o={\"data-start\":e.start,\"data-end\":e.end,\"data-index\":e.index};t.innerRoot.appendChild(d(\"xg-text-track-span\",r,o,n))})})}},{key:\"show\",value:function(){c(this.root,\"text-track-hide\")}},{key:\"hide\",value:function(){u(this.root,\"text-track-hide\"),this.innerRoot.innerHTML=\"\"}},{key:\"destroy\",value:function(){this.detachPlayer(),this.removeAllListeners(),this.player=null,this.textTrack=null}},{key:\"marginBottom\",get:function(){var t=this._videoMeta,e=t.bottom,n=t.marginBottom;return this.config.fitVideo?e+n:n}}]),e}(wr)});\n//# sourceMappingURL=index.min.js.map\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports[\"danmu.js\"]=t():e[\"danmu.js\"]=t()}(window,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=4)}([function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i={createDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"div\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"\",o=document.createElement(e);return o.className=i,o.innerHTML=t,Object.keys(n).forEach((function(t){var i=t,r=n[t];\"video\"===e||\"audio\"===e?r&&o.setAttribute(i,r):o.setAttribute(i,r)})),o},hasClass:function(e,t){return e.classList?Array.prototype.some.call(e.classList,(function(e){return e===t})):!!e.className.match(new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\"))},addClass:function(e,t){e.classList?t.replace(/(^\\s+|\\s+$)/g,\"\").split(/\\s+/g).forEach((function(t){t&&e.classList.add(t)})):i.hasClass(e,t)||(e.className+=\" \"+t)},removeClass:function(e,t){e.classList?t.split(/\\s+/g).forEach((function(t){e.classList.remove(t)})):i.hasClass(e,t)&&t.split(/\\s+/g).forEach((function(t){var n=new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\");e.className=e.className.replace(n,\" \")}))},toggleClass:function(e,t){t.split(/\\s+/g).forEach((function(t){i.hasClass(e,t)?i.removeClass(e,t):i.addClass(e,t)}))},findDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=arguments[1],n=void 0;try{n=e.querySelector(t)}catch(i){t.startsWith(\"#\")&&(n=e.getElementById(t.slice(1)))}return n},deepCopy:function(e,t){if(\"Object\"===i.typeOf(t)&&\"Object\"===i.typeOf(e))return Object.keys(t).forEach((function(n){\"Object\"!==i.typeOf(t[n])||t[n]instanceof Node?\"Array\"===i.typeOf(t[n])?e[n]=\"Array\"===i.typeOf(e[n])?e[n].concat(t[n]):t[n]:e[n]=t[n]:e[n]?i.deepCopy(e[n],t[n]):e[n]=t[n]})),e},typeOf:function(e){return Object.prototype.toString.call(e).match(/([^\\s.*]+)(?=]$)/g)[0]},copyDom:function(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,(function(e){t.setAttribute(e.name,e.value)})),e.innerHTML&&(t.innerHTML=e.innerHTML),t}return\"\"},formatTime:function(e){var t=Math.floor(e);return 1e3*t+(e-t)},offInDestroy:function(e,t,n,i){e.once(i,(function o(){e.off(t,n),e.off(i,o)}))},on:function(e,t,n,o){if(o)e.on(t,n),i.offInDestroy(e,t,n,o);else{e.on(t,(function i(o){n(o),e.off(t,i)}))}},style:function(e,t,n){var i=e.style;try{i[t]=n}catch(e){i.setProperty(t,n)}}};t.default=i,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=n(26),a=(i=r)&&i.__esModule?i:{default:i};var s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e)}return o(e,[{key:\"setLogger\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";this.logger=new a.default(e+\".js\")}}]),e}();t.default=s,e.exports=t.default},function(e,t,n){\"use strict\";var i=n(19)();e.exports=function(e){return e!==i&&null!==e}},function(e,t,n){\"use strict\";e.exports=function(e){return null!=e}},function(e,t,n){e.exports=n(5)},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=n(6),r=(i=o)&&i.__esModule?i:{default:i};n(34),t.default=r.default,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=f(n(7)),r=f(n(1)),a=f(n(27)),s=f(n(31)),l=f(n(0)),u=n(32),c=n(33);function f(e){return e&&e.__esModule?e:{default:e}}function h(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}var d=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=h(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));n.setLogger(\"danmu\"),n.logger&&n.logger.info(\"danmu.js version: \"+u.version);var i=n;if(i.config=l.default.deepCopy({overlap:!1,area:{start:0,end:1},live:!1,comments:[],direction:\"r2l\",needResizeObserver:!1},e),i.hideArr=[],i.domObj=new s.default,(0,o.default)(i),i.config.comments.forEach((function(e){e.duration=e.duration?e.duration:5e3,e.mode||(e.mode=\"scroll\")})),!i.config.container||1!==i.config.container.nodeType)return i.emit(\"error\",\"container id can't be empty\"),!1,h(n,!1);if(i.container=i.config.container,i.config.containerStyle){var r=i.config.containerStyle;Object.keys(r).forEach((function(e){i.container.style[e]=r[e]}))}return i.live=i.config.live,i.player=i.config.player,i.direction=i.config.direction,l.default.addClass(i.container,\"danmu\"),i.bulletBtn=new a.default(i),i.isReady=!0,i.emit(\"ready\"),n.logger&&n.logger.info(\"ready\"),n.addResizeObserver(),n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"addResizeObserver\",value:function(){var e=this;this.config.needResizeObserver&&(0,c.addObserver)(this.container,(function(){e.logger&&e.logger.info(\"needResizeObserver\"),e.resize()}))}},{key:\"start\",value:function(){this.logger&&this.logger.info(\"start\"),this.bulletBtn.main.start()}},{key:\"pause\",value:function(){this.logger&&this.logger.info(\"pause\"),this.bulletBtn.main.pause()}},{key:\"play\",value:function(){this.logger&&this.logger.info(\"play\"),this.bulletBtn.main.play()}},{key:\"stop\",value:function(){this.logger&&this.logger.info(\"stop\"),this.bulletBtn.main.stop()}},{key:\"clear\",value:function(){this.logger&&this.logger.info(\"clear\"),this.bulletBtn.main.clear()}},{key:\"destroy\",value:function(){for(var e in(0,c.unObserver)(this.container),this.logger&&this.logger.info(\"destroy\"),this.stop(),this.bulletBtn.destroy(),this.domObj.destroy(),this)delete this[e];this.emit(\"destroy\")}},{key:\"sendComment\",value:function(e){this.logger&&this.logger.info(\"sendComment: \"+(e.txt||\"[DOM Element]\")),e.duration||(e.duration=15e3),e&&e.id&&e.duration&&(e.el||e.txt)&&(e.duration=e.duration?e.duration:5e3,e.style||(e.style={opacity:void 0,fontSize:void 0}),e.style&&(this.opacity&&this.opacity!==e.style.opacity&&(e.style.opacity=this.opacity),this.fontSize&&this.fontSize!==e.style.fontSize&&(e.style.fontSize=this.fontSize),this.like&&(e.like=e.like?e.like:this.like)),e.prior||e.realTime?(this.bulletBtn.main.data.unshift(e),e.realTime&&(this.bulletBtn.main.readData(),this.bulletBtn.main.dataHandle())):this.bulletBtn.main.data.push(e))}},{key:\"setCommentID\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setCommentID: oldID \"+e+\" newID \"+t);var i=this.container.getBoundingClientRect();e&&t&&(this.bulletBtn.main.data.some((function(n){return n.id===e&&(n.id=t,!0)})),this.bulletBtn.main.queue.some((function(o){return o.id===e&&(o.id=t,o.pauseMove(i),\"paused\"!==n.bulletBtn.main.status&&o.startMove(i),!0)})))}},{key:\"setCommentDuration\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setCommentDuration: id \"+e+\" duration \"+t);var i=this.container.getBoundingClientRect();e&&t&&(t=t||5e3,this.bulletBtn.main.data.some((function(n){return n.id===e&&(n.duration=t,!0)})),this.bulletBtn.main.queue.some((function(o){return o.id===e&&(o.duration=t,o.pauseMove(i),\"paused\"!==n.bulletBtn.main.status&&o.startMove(i),!0)})))}},{key:\"setCommentLike\",value:function(e,t){this.logger&&this.logger.info(\"setCommentLike: id \"+e+\" like \"+t);var n=this.container.getBoundingClientRect();this.like=t,e&&t&&(this.bulletBtn.main.data.some((function(n){return n.id===e&&(n.like=t,!0)})),this.bulletBtn.main.queue.some((function(i){return i.id===e&&(i.pauseMove(n),i.setLikeDom(t.el,t.style),\"paused\"!==i.danmu.bulletBtn.main.status&&i.startMove(n),!0)})))}},{key:\"restartComment\",value:function(e){this.logger&&this.logger.info(\"restartComment: id \"+e),this.mouseControl=!1;var t=this.container.getBoundingClientRect();e&&this.bulletBtn.main.queue.some((function(n){return n.id===e&&(\"paused\"!==n.danmu.bulletBtn.main.status?n.startMove(t,!0):n.status=\"paused\",!0)}))}},{key:\"freezeComment\",value:function(e){this.logger&&this.logger.info(\"freezeComment: id \"+e),this.mouseControl=!0;var t=this.container.getBoundingClientRect();e&&this.bulletBtn.main.queue.some((function(n){return n.id===e&&(n.status=\"forcedPause\",n.pauseMove(t),n.el&&n.el.style&&l.default.style(n.el,\"zIndex\",10),!0)}))}},{key:\"removeComment\",value:function(e){this.logger&&this.logger.info(\"removeComment: id \"+e),e&&(this.bulletBtn.main.queue.some((function(t){return t.id===e&&(t.remove(),!0)})),this.bulletBtn.main.data=this.bulletBtn.main.data.filter((function(t){return t.id!==e})))}},{key:\"updateComments\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t&&(this.bulletBtn.main.data=[]),this.bulletBtn.main.data=this.bulletBtn.main.data.concat(e)}},{key:\"setAllDuration\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\",t=arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];this.logger&&this.logger.info(\"setAllDuration: mode \"+e+\" duration \"+t+\" force \"+n);var i=this.container.getBoundingClientRect();t&&(t=t||5e3,n&&(this.bulletBtn.main.forceDuration=t),this.bulletBtn.main.data.forEach((function(n){e===n.mode&&(n.duration=t)})),this.bulletBtn.main.queue.forEach((function(n){e===n.mode&&(n.duration=t,n.pauseMove(i),\"paused\"!==n.danmu.bulletBtn.main.status&&n.startMove(i))})))}},{key:\"setOpacity\",value:function(e){this.logger&&this.logger.info(\"setOpacity: opacity \"+e),this.container.style.opacity=e}},{key:\"setFontSize\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setFontSize: size \"+e+\" channelSize \"+t),this.fontSize=e+\"px\",e&&(this.bulletBtn.main.data.forEach((function(e){e.style&&(e.style.fontSize=n.fontSize)})),this.bulletBtn.main.queue.forEach((function(e){e.options.style||(e.options.style={}),e.options.style.fontSize=n.fontSize,e.setFontSize(n.fontSize),t&&(e.top=e.channel_id[0]*t,e.topInit())}))),t&&(this.config.channelSize=t,this.bulletBtn.main.channel.resize(!0))}},{key:\"setArea\",value:function(e){this.logger&&this.logger.info(\"setArea: area \"+e),this.config.area=e,this.bulletBtn.main.channel.resize(!0)}},{key:\"hide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\";this.logger&&this.logger.info(\"hide: mode \"+e),this.hideArr.indexOf(e)<0&&this.hideArr.push(e);var t=this.bulletBtn.main.queue.filter((function(t){return e===t.mode||\"color\"===e&&t.color}));t.forEach((function(e){return e.remove()}))}},{key:\"show\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\";this.logger&&this.logger.info(\"show: mode \"+e);var t=this.hideArr.indexOf(e);t>-1&&this.hideArr.splice(t,1)}},{key:\"setDirection\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"r2l\";this.logger&&this.logger.info(\"setDirection: direction \"+e),this.emit(\"changeDirection\",e)}},{key:\"resize\",value:function(){this.logger&&this.logger.info(\"resize\"),this.emit(\"channel_resize\")}}]),t}(r.default);t.default=d,e.exports=t.default},function(e,t,n){\"use strict\";var i,o,r,a,s,l,u,c=n(8),f=n(25),h=Function.prototype.apply,d=Function.prototype.call,g=Object.create,p=Object.defineProperty,m=Object.defineProperties,v=Object.prototype.hasOwnProperty,b={configurable:!0,enumerable:!1,writable:!0};o=function(e,t){var n,o;return f(t),o=this,i.call(this,e,n=function(){r.call(o,e,n),h.call(t,this,arguments)}),n.__eeOnceListener__=t,this},s={on:i=function(e,t){var n;return f(t),v.call(this,\"__ee__\")?n=this.__ee__:(n=b.value=g(null),p(this,\"__ee__\",b),b.value=null),n[e]?\"object\"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:o,off:r=function(e,t){var n,i,o,r;if(f(t),!v.call(this,\"__ee__\"))return this;if(!(n=this.__ee__)[e])return this;if(\"object\"==typeof(i=n[e]))for(r=0;o=i[r];++r)o!==t&&o.__eeOnceListener__!==t||(2===i.length?n[e]=i[r?0:1]:i.splice(r,1));else i!==t&&i.__eeOnceListener__!==t||delete n[e];return this},emit:a=function(e){var t,n,i,o,r;if(v.call(this,\"__ee__\")&&(o=this.__ee__[e]))if(\"object\"==typeof o){for(n=arguments.length,r=new Array(n-1),t=1;t<n;++t)r[t-1]=arguments[t];for(o=o.slice(),t=0;i=o[t];++t)h.call(i,this,r)}else switch(arguments.length){case 1:d.call(o,this);break;case 2:d.call(o,this,arguments[1]);break;case 3:d.call(o,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,r=new Array(n-1),t=1;t<n;++t)r[t-1]=arguments[t];h.call(o,this,r)}}},l={on:c(i),once:c(o),off:c(r),emit:c(a)},u=m({},l),e.exports=t=function(e){return null==e?g(u):m(Object(e),l)},t.methods=s},function(e,t,n){\"use strict\";var i=n(3),o=n(9),r=n(13),a=n(21),s=n(22);(e.exports=function(e,t){var n,o,l,u,c;return arguments.length<2||\"string\"!=typeof e?(u=t,t=e,e=null):u=arguments[2],i(e)?(n=s.call(e,\"c\"),o=s.call(e,\"e\"),l=s.call(e,\"w\")):(n=l=!0,o=!1),c={value:t,configurable:n,enumerable:o,writable:l},u?r(a(u),c):c}).gs=function(e,t,n){var l,u,c,f;return\"string\"!=typeof e?(c=n,n=t,t=e,e=null):c=arguments[3],i(t)?o(t)?i(n)?o(n)||(c=n,n=void 0):n=void 0:(c=t,t=n=void 0):t=void 0,i(e)?(l=s.call(e,\"c\"),u=s.call(e,\"e\")):(l=!0,u=!1),f={get:t,set:n,configurable:l,enumerable:u},c?r(a(c),f):f}},function(e,t,n){\"use strict\";var i=n(10),o=/^\\s*class[\\s{/}]/,r=Function.prototype.toString;e.exports=function(e){return!!i(e)&&!o.test(r.call(e))}},function(e,t,n){\"use strict\";var i=n(11);e.exports=function(e){if(\"function\"!=typeof e)return!1;if(!hasOwnProperty.call(e,\"length\"))return!1;try{if(\"number\"!=typeof e.length)return!1;if(\"function\"!=typeof e.call)return!1;if(\"function\"!=typeof e.apply)return!1}catch(e){return!1}return!i(e)}},function(e,t,n){\"use strict\";var i=n(12);e.exports=function(e){if(!i(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(e){return!1}}},function(e,t,n){\"use strict\";var i=n(3),o={object:!0,function:!0,undefined:!0};e.exports=function(e){return!!i(e)&&hasOwnProperty.call(o,typeof e)}},function(e,t,n){\"use strict\";e.exports=n(14)()?Object.assign:n(15)},function(e,t,n){\"use strict\";e.exports=function(){var e,t=Object.assign;return\"function\"==typeof t&&(t(e={foo:\"raz\"},{bar:\"dwa\"},{trzy:\"trzy\"}),e.foo+e.bar+e.trzy===\"razdwatrzy\")}},function(e,t,n){\"use strict\";var i=n(16),o=n(20),r=Math.max;e.exports=function(e,t){var n,a,s,l=r(arguments.length,2);for(e=Object(o(e)),s=function(i){try{e[i]=t[i]}catch(e){n||(n=e)}},a=1;a<l;++a)i(t=arguments[a]).forEach(s);if(void 0!==n)throw n;return e}},function(e,t,n){\"use strict\";e.exports=n(17)()?Object.keys:n(18)},function(e,t,n){\"use strict\";e.exports=function(){try{return Object.keys(\"primitive\"),!0}catch(e){return!1}}},function(e,t,n){\"use strict\";var i=n(2),o=Object.keys;e.exports=function(e){return o(i(e)?Object(e):e)}},function(e,t,n){\"use strict\";e.exports=function(){}},function(e,t,n){\"use strict\";var i=n(2);e.exports=function(e){if(!i(e))throw new TypeError(\"Cannot use null or undefined\");return e}},function(e,t,n){\"use strict\";var i=n(2),o=Array.prototype.forEach,r=Object.create,a=function(e,t){var n;for(n in e)t[n]=e[n]};e.exports=function(e){var t=r(null);return o.call(arguments,(function(e){i(e)&&a(Object(e),t)})),t}},function(e,t,n){\"use strict\";e.exports=n(23)()?String.prototype.contains:n(24)},function(e,t,n){\"use strict\";var i=\"razdwatrzy\";e.exports=function(){return\"function\"==typeof i.contains&&(!0===i.contains(\"dwa\")&&!1===i.contains(\"foo\"))}},function(e,t,n){\"use strict\";var i=String.prototype.indexOf;e.exports=function(e){return i.call(this,e,arguments[1])>-1}},function(e,t,n){\"use strict\";e.exports=function(e){if(\"function\"!=typeof e)throw new TypeError(e+\" is not a function\");return e}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var o=\"undefined\"!=typeof window&&window.location.href.indexOf(\"danmu-debug\")>-1,r=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.constructorName=t||\"\"}return i(e,[{key:\"info\",value:function(e){for(var t,n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];o&&(t=console).log.apply(t,[\"[Danmu Log][\"+this.constructorName+\"]\",e].concat(i))}}]),e}();t.default=r,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=s(n(1)),r=s(n(0)),a=s(n(28));function s(e){return e&&e.__esModule?e:{default:e}}var l=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.setLogger(\"control\"),n.danmu=e,n.main=new a.default(e),e.config.defaultOff||n.main.start(),n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"createSwitch\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.logger&&this.logger.info(\"createSwitch\"),this.switchBtn=r.default.createDom(\"dk-switch\",'<span class=\"txt\">弹</span>',{},\"danmu-switch \"+(e?\"danmu-switch-active\":\"\")),this.switchBtn}},{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),this.main.destroy(),this)delete this[e]}}]),t}(o.default);t.default=l,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=l(n(1)),r=l(n(29)),a=l(n(30)),s=l(n(0));function l(e){return e&&e.__esModule?e:{default:e}}var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));n.setLogger(\"main\"),n.danmu=e,n.container=e.container,n.channel=new r.default(e),n.data=[].concat(e.config.comments),n.playedData=[],n.queue=[],n.timer=null,n.retryTimer=null,n.retryStatus=\"normal\",n.interval=e.config.interval||2e3,n.status=\"idle\",s.default.on(e,\"bullet_remove\",n.updateQueue.bind(n),\"destroy\");var i=n;return s.default.on(n.danmu,\"changeDirection\",(function(e){i.danmu.direction=e}),\"destroy\"),n.nums=0,n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),clearTimeout(this.dataHandleTimer),this.channel.destroy(),this.data=[],this)delete this[e]}},{key:\"updateQueue\",value:function(e){this.logger&&this.logger.info(\"updateQueue\");var t=this;t.queue.some((function(n,i){return n.id===e.bullet.id&&(t.queue.splice(i,1),!0)})),t.data.some((function(t,n){return t.id===e.bullet.id&&(t.hasAttached=!1,!0)}))}},{key:\"init\",value:function(e,t){t.logger&&t.logger.info(\"init\"),t||(t=this),t.retryStatus=\"normal\",t.data.sort((function(e,t){return e.start-t.start}));t.retryTimer||function e(){\"closed\"===t.status&&\"stop\"===t.retryStatus||(\"playing\"===t.status&&(t.readData(),t.dataHandle()),\"stop\"===t.retryStatus&&\"paused\"!==t.status||(t.dataHandleTimer=setTimeout((function(){e()}),t.interval-1e3)))}()}},{key:\"start\",value:function(){this.logger&&this.logger.info(\"start\");this.status=\"playing\",this.queue=[],this.container.innerHTML=\"\",this.channel.resetWithCb(this.init,this)}},{key:\"stop\",value:function(){this.logger&&this.logger.info(\"stop\");this.status=\"closed\",this.retryTimer=null,this.retryStatus=\"stop\",this.channel.reset(),this.queue=[],this.container.innerHTML=\"\"}},{key:\"clear\",value:function(){this.logger&&this.logger.info(\"clear\"),this.channel.reset(),this.data=[],this.queue=[],this.container.innerHTML=\"\"}},{key:\"play\",value:function(){var e=this;this.logger&&this.logger.info(\"play\"),this.status=\"playing\";var t=this.channel.channels,n=this.danmu.container.getBoundingClientRect();t&&t.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(i){e.queue.forEach((function(e){e.startMove(n),e.resized=!0}));for(var o=0;o<t.length;o++)t[o].queue[i].forEach((function(e){e.resized=!1}))}))}},{key:\"pause\",value:function(){this.logger&&this.logger.info(\"pause\"),this.status=\"paused\";var e=this.channel.channels,t=this.danmu.container.getBoundingClientRect();e&&e.length>0&&this.queue.forEach((function(e){e.pauseMove(t)}))}},{key:\"dataHandle\",value:function(){var e=this;\"paused\"!==this.status&&\"closed\"!==this.status&&e.queue.length&&e.queue.forEach((function(t){\"waiting\"===t.status&&t.startMove(e.channel.containerPos)}))}},{key:\"readData\",value:function(){var e=this,t=this.danmu;if(t.isReady){var n=0;t.player&&t.player.currentTime&&(n=s.default.formatTime(t.player.currentTime));var i=void 0,o=e.interval,r=e.channel,l=void 0;t.player?(l=e.data.filter((function(t){return!t.start&&e.danmu.hideArr.indexOf(t.mode)<0&&(!t.color||e.danmu.hideArr.indexOf(\"color\")<0)&&(t.start=n),e.danmu.hideArr.indexOf(t.mode)<0&&(!t.color||e.danmu.hideArr.indexOf(\"color\")<0)&&t.start-o<=n&&n<=t.start+o})),t.live&&(e.data=[])):0===(l=e.data.splice(0,1)).length&&(l=e.playedData.splice(0,1)),l.length>0&&l.forEach((function(n){if(e.forceDuration&&e.forceDuration!=n.duration&&(n.duration=e.forceDuration),i=new a.default(t,n),n.hasAttached){for(var o in i.detach(),i)delete i[o];i=null,n.hasAttached=!1,n.noDiscard&&(n.prior?e.data.unshift(n):e.data.push(n))}else if(i.attach(),n.hasAttached=!0,r.addBullet(i).result)e.queue.push(i),e.nums++,i.topInit();else{for(var s in i.detach(),i)delete i[s];i=null,n.hasAttached=!1,n.noDiscard&&(n.prior?e.data.unshift(n):e.data.push(n))}}))}}}]),t}(o.default);t.default=u,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=a(n(1)),r=a(n(0));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));n.setLogger(\"channel\"),n.danmu=e,n.reset(!0);var i=n;return r.default.on(n.danmu,\"bullet_remove\",(function(e){i.removeBullet(e.bullet)}),\"destroy\"),n.direction=e.direction,r.default.on(n.danmu,\"changeDirection\",(function(e){i.direction=e}),\"destroy\"),n.containerPos=n.danmu.container.getBoundingClientRect(),n.containerWidth=n.containerPos.width,n.containerHeight=n.containerPos.height,n.containerLeft=n.containerPos.left,n.containerRight=n.containerPos.right,r.default.on(n.danmu,\"channel_resize\",(function(){i.containerPos=i.danmu.container.getBoundingClientRect(),i.resizing||(i.containerWidth=i.containerPos.width,i.containerHeight=i.containerPos.height,i.containerLeft=i.containerPos.left,i.containerRight=i.containerPos.right,i.resize(!0))}),\"destroy\"),n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),clearTimeout(this.resizeTimer),this.channels=[],this)delete this[e]}},{key:\"resize\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logger&&this.logger.info(\"resize\");var t=this.danmu.container,n=this;n.resizing||(n.resizing=!0,this.resizeTimer=setTimeout((function(){n.danmu.bulletBtn.main.data&&n.danmu.bulletBtn.main.data.forEach((function(e){e.bookChannelId&&(delete e.bookChannelId,n.logger&&n.logger.info(\"resize导致\"+e.id+\"号优先弹幕预定取消\"))})),n.logger&&n.logger.info(\"resize导致所有轨道恢复正常使用\");var i=t.getBoundingClientRect();n.width=i.width,n.height=i.height,n.danmu.config.area&&n.danmu.config.area.start>=0&&n.danmu.config.area.end>=n.danmu.config.area.start&&(\"b2t\"===n.direction?n.width=n.width*(n.danmu.config.area.end-n.danmu.config.area.start):n.height=n.height*(n.danmu.config.area.end-n.danmu.config.area.start)),n.container=t;var o=n.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),r=void 0;r=\"b2t\"===n.direction?Math.floor(n.width/o):Math.floor(n.height/o);for(var a=[],s=0;s<r;s++)a[s]={id:s,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};if(n.channels&&n.channels.length<=a.length){for(var l=function(t){a[t]={id:t,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},[\"scroll\",\"top\"].forEach((function(i){n.channels[t].queue[i].forEach((function(o){o.el&&(a[t].queue[i].push(o),o.resized||(o.pauseMove(n.containerPos,e),\"paused\"!==o.danmu.bulletBtn.main.status&&o.startMove(n.containerPos),o.resized=!0))}))})),n.channels[t].queue.bottom.forEach((function(i){if(i.el){if(a[t+a.length-n.channels.length].queue.bottom.push(i),i.channel_id[0]+i.channel_id[1]-1===t){var r=[].concat(i.channel_id);i.channel_id=[r[0]-n.channels.length+a.length,r[1]],i.top=i.channel_id[0]*o,n.danmu.config.area&&n.danmu.config.area.start&&(i.top+=n.containerHeight*n.danmu.config.area.start),i.topInit()}i.resized||(i.pauseMove(n.containerPos,e),\"paused\"!==i.danmu.bulletBtn.main.status&&i.startMove(n.containerPos),i.resized=!0)}}))},u=0;u<n.channels.length;u++)l(u);for(var c=function(e){[\"scroll\",\"top\",\"bottom\"].forEach((function(t){a[e].queue[t].forEach((function(e){e.resized=!1}))}))},f=0;f<a.length;f++)c(f);n.channels=a,\"b2t\"===n.direction?n.channelWidth=o:n.channelHeight=o}else if(n.channels&&n.channels.length>a.length){for(var h=function(t){a[t]={id:t,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},[\"scroll\",\"top\",\"bottom\"].forEach((function(i){if(\"top\"===i&&t>Math.floor(a.length/2));else if(\"bottom\"===i&&t<=Math.floor(a.length/2));else{var r=\"bottom\"===i?t-a.length+n.channels.length:t;n.channels[r].queue[i].forEach((function(s,l){if(s.el){if(a[t].queue[i].push(s),\"bottom\"===i&&s.channel_id[0]+s.channel_id[1]-1===r){var u=[].concat(s.channel_id);s.channel_id=[u[0]-n.channels.length+a.length,u[1]],s.top=s.channel_id[0]*o,n.danmu.config.area&&n.danmu.config.area.start&&(s.top+=n.containerHeight*n.danmu.config.area.start),s.topInit()}s.pauseMove(n.containerPos,e),\"paused\"!==s.danmu.bulletBtn.main.status&&s.startMove(n.containerPos),s.resized||(s.resized=!0)}n.channels[r].queue[i].splice(l,1)}))}}))},d=0;d<a.length;d++)h(d);for(var g=function(e){[\"scroll\",\"top\",\"bottom\"].forEach((function(t){a[e].queue[t].forEach((function(e){e.resized=!1}))}))},p=0;p<a.length;p++)g(p);n.channels=a,\"b2t\"===n.direction?n.channelWidth=o:n.channelHeight=o}n.resizing=!1}),10))}},{key:\"addBullet\",value:function(e){var t=this,n=this.danmu,i=this.channels,o=void 0,r=void 0,a=void 0;if(\"b2t\"===t.direction?(r=this.channelWidth,a=Math.ceil(e.width/r)):(o=this.channelHeight,a=Math.ceil(e.height/o)),a>i.length)return{result:!1,message:\"exceed channels.length, occupy=\"+a+\",channelsSize=\"+i.length};for(var s=!0,l=void 0,u=-1,c=0,f=i.length;c<f;c++)if(i[c].queue[e.mode].some((function(t){return t.id===e.id})))return{result:!1,message:\"exsited, channelOrder=\"+c+\",danmu_id=\"+e.id};if(\"scroll\"===e.mode)for(var h=0,d=i.length-a;h<=d;h++){s=!0;for(var g=h;g<h+a;g++){if((l=i[g]).operating.scroll){s=!1;break}if(l.bookId.scroll&&l.bookId.scroll!==e.id){s=!1;break}l.operating.scroll=!0;var p=l.queue.scroll[0];if(p){var m=p.el.getBoundingClientRect();if(\"b2t\"===t.direction){if(m.bottom>t.containerPos.bottom){s=!1,l.operating.scroll=!1;break}}else if(m.right>t.containerPos.right){s=!1,l.operating.scroll=!1;break}var v,b=void 0,y=void 0,w=void 0,_=void 0;if(\"b2t\"===t.direction?(y=(m.top-t.containerPos.top+m.height)/(b=(t.containerPos.height+m.height)/p.duration),w=t.containerPos.height,_=(t.containerPos.height+e.height)/e.duration):(y=(m.left-t.containerPos.left+m.width)/(b=(t.containerPos.width+m.width)/p.duration),w=t.containerPos.width,_=(t.containerPos.width+e.width)/e.duration),v=w/_,n.config.bOffset||(n.config.bOffset=0),b<_&&y+n.config.bOffset>v){s=!1,l.operating.scroll=!1;break}}l.operating.scroll=!1}if(s){u=h;break}}else if(\"top\"===e.mode)for(var O=0,k=i.length-a;O<=k;O++){s=!0;for(var x=O;x<O+a;x++){if(x>Math.floor(i.length/2)){s=!1;break}if((l=i[x]).operating[e.mode]){s=!1;break}if((l.bookId[e.mode]||e.prior)&&l.bookId[e.mode]!==e.id){s=!1;break}if(l.operating[e.mode]=!0,l.queue[e.mode].length>0){s=!1,l.operating[e.mode]=!1;break}l.operating[e.mode]=!1}if(s){u=O;break}}else if(\"bottom\"===e.mode)for(var M=i.length-a;M>=0;M--){s=!0;for(var C=M;C<M+a;C++){if(C<=Math.floor(i.length/2)){s=!1;break}if((l=i[C]).operating[e.mode]){s=!1;break}if((l.bookId[e.mode]||e.prior)&&l.bookId[e.mode]!==e.id){s=!1;break}if(l.operating[e.mode]=!0,l.queue[e.mode].length>0){s=!1,l.operating[e.mode]=!1;break}l.operating[e.mode]=!1}if(s){u=M;break}}if(-1!==u){for(var E=u,j=u+a;E<j;E++)(l=i[E]).operating[e.mode]=!0,l.queue[e.mode].unshift(e),e.prior&&(delete l.bookId[e.mode],t.logger&&t.logger.info(E+\"号轨道恢复正常使用\")),l.operating[e.mode]=!1;if(e.prior)if(t.logger&&t.logger.info(e.id+\"号优先弹幕运行完毕\"),delete e.bookChannelId,n.player)n.bulletBtn.main.data.some((function(t){return t.id===e.id&&(delete t.bookChannelId,!0)}));return e.channel_id=[u,a],\"b2t\"===t.direction?(e.top=u*r,t.danmu.config.area&&t.danmu.config.area.start&&(e.top+=t.containerWidth*t.danmu.config.area.start)):(e.top=u*o,t.danmu.config.area&&t.danmu.config.area.start&&(e.top+=t.containerHeight*t.danmu.config.area.start)),{result:e,message:\"success\"}}if(e.options.realTime){var B=0,T=-1,P=null;if(t.danmu.bulletBtn.main.queue.forEach((function(e,n){!e.prior&&!e.options.realTime&&e.el&&e.el.getBoundingClientRect().left>t.containerPos.right&&e.start>=B&&(B=e.start,T=n,P=e)})),P){P.remove(),t.removeBullet(P),t.danmu.bulletBtn.main.queue.splice(T,1),e.channel_id=P.channel_id;for(var z=P.channel_id[0],S=P.channel_id[0]+P.channel_id[1];z<S;z++)(l=i[z]).operating[e.mode]=!0,l.queue[e.mode].unshift(e),e.prior&&delete l.bookId[e.mode],l.operating[e.mode]=!1;return e.top=P.top,t.danmu.config.area&&t.danmu.config.area.start&&(e.top+=t.containerHeight*t.danmu.config.area.start),{result:e,message:\"success\"}}}if(e.prior)if(e.bookChannelId||t.danmu.live){if(n.player)n.bulletBtn.main.data.some((function(n){return n.id===e.id&&(t.logger&&t.logger.info(e.id+\"号优先弹幕将于2秒后再次请求注册\"),n.start+=2e3,!0)}))}else{u=-1;for(var L=0,D=i.length-a;L<=D;L++){s=!0;for(var q=L;q<L+a;q++)if(i[q].bookId[e.mode]){s=!1;break}if(s){u=L;break}}if(-1!==u){for(var R=u;R<u+a;R++)i[R].bookId[e.mode]=e.id,t.logger&&t.logger.info(R+\"号轨道被\"+e.id+\"号优先弹幕预定\");if(n.player)n.bulletBtn.main.data.some((function(n){return n.id===e.id&&(t.logger&&t.logger.info(e.id+\"号优先弹幕将于2秒后再次请求注册\"),n.start+=2e3,n.bookChannelId=[u,a],t.logger&&t.logger.info(e.id+\"号优先弹幕预定了\"+u+\"~\"+(u+a-1)+\"号轨道\"),!0)}))}}return{result:!1,message:\"no surplus will right\"}}},{key:\"removeBullet\",value:function(e){this.logger&&this.logger.info(\"removeBullet \"+(e.options.txt||\"[DOM Element]\"));for(var t=this.channels,n=e.channel_id,i=void 0,o=n[0],r=n[0]+n[1];o<r;o++)if(i=t[o]){i.operating[e.mode]=!0;var a=-1;i.queue[e.mode].some((function(t,n){return t.id===e.id&&(a=n,!0)})),a>-1&&i.queue[e.mode].splice(a,1),i.operating[e.mode]=!1}e.options.loop&&this.danmu.bulletBtn.main.playedData.push(e.options)}},{key:\"resetArea\",value:function(){this.logger&&this.logger.info(\"resetArea\");var e=this.danmu.container,t=this,n=e.getBoundingClientRect();t.width=n.width,t.height=n.height,t.danmu.config.area&&t.danmu.config.area.start>=0&&t.danmu.config.area.end>=t.danmu.config.area.start&&(\"b2t\"===t.direction?t.width=t.width*(t.danmu.config.area.end-t.danmu.config.area.start):t.height=t.height*(t.danmu.config.area.end-t.danmu.config.area.start)),t.container=e;var i=t.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),o=void 0;o=\"b2t\"===t.direction?Math.floor(t.width/i):Math.floor(t.height/i);for(var r=[],a=0;a<o;a++)r[a]={id:a,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};if(t.channels&&t.channels.length<=r.length){for(var s=function(e){r[e]={id:e,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},[\"scroll\",\"top\"].forEach((function(n){t.channels[e].queue[n].forEach((function(i){i.el&&(r[e].queue[n].push(i),i.resized||(i.pauseMove(t.containerPos,!1),i.startMove(t.containerPos),i.resized=!0))}))})),t.channels[e].queue.bottom.forEach((function(n){if(n.el){if(r[e+r.length-t.channels.length].queue.bottom.push(n),n.channel_id[0]+n.channel_id[1]-1===e){var o=[].concat(n.channel_id);n.channel_id=[o[0]-t.channels.length+r.length,o[1]],n.top=n.channel_id[0]*i,t.danmu.config.area&&t.danmu.config.area.start&&(n.top+=t.containerHeight*t.danmu.config.area.start),n.topInit()}n.resized||(n.pauseMove(t.containerPos,!1),n.startMove(t.containerPos),n.resized=!0)}}))},l=0;l<t.channels.length;l++)s(l);for(var u=function(e){[\"scroll\",\"top\",\"bottom\"].forEach((function(t){r[e].queue[t].forEach((function(e){e.resized=!1}))}))},c=0;c<r.length;c++)u(c);t.channels=r,\"b2t\"===t.direction?t.channelWidth=i:t.channelHeight=i}else if(t.channels&&t.channels.length>r.length){for(var f=function(e){r[e]={id:e,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},[\"scroll\",\"top\",\"bottom\"].forEach((function(n){if(\"top\"===n&&e>Math.floor(r.length/2));else if(\"bottom\"===n&&e<=Math.floor(r.length/2));else{var o=\"bottom\"===n?e-r.length+t.channels.length:e;t.channels[o].queue[n].forEach((function(a,s){if(a.el){if(r[e].queue[n].push(a),\"bottom\"===n&&a.channel_id[0]+a.channel_id[1]-1===o){var l=[].concat(a.channel_id);a.channel_id=[l[0]-t.channels.length+r.length,l[1]],a.top=a.channel_id[0]*i,t.danmu.config.area&&t.danmu.config.area.start&&(a.top+=t.containerHeight*t.danmu.config.area.start),a.topInit()}a.resized||(a.pauseMove(t.containerPos,!1),a.startMove(t.containerPos),a.resized=!0)}t.channels[o].queue[n].splice(s,1)}))}}))},h=0;h<r.length;h++)f(h);for(var d=function(e){[\"scroll\",\"top\",\"bottom\"].forEach((function(t){r[e].queue[t].forEach((function(e){e.resized=!1}))}))},g=0;g<r.length;g++)d(g);t.channels=r,\"b2t\"===t.direction?t.channelWidth=i:t.channelHeight=i}}},{key:\"reset\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logger&&this.logger.info(\"reset\");var t=this.danmu.container,n=this;function i(){var e=t.getBoundingClientRect();n.width=e.width,n.height=e.height,n.danmu.config.area&&n.danmu.config.area.start>=0&&n.danmu.config.area.end>=n.danmu.config.area.start&&(\"b2t\"===n.direction?n.width=n.width*(n.danmu.config.area.end-n.danmu.config.area.start):n.height=n.height*(n.danmu.config.area.end-n.danmu.config.area.start)),n.container=t;var i=n.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),o=void 0;o=\"b2t\"===n.direction?Math.floor(n.width/i):Math.floor(n.height/i);for(var r=[],a=0;a<o;a++)r[a]={id:a,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};n.channels=r,\"b2t\"===n.direction?n.channelWidth=i:n.channelHeight=i}n.danmu.bulletBtn&&n.danmu.bulletBtn.main&&n.danmu.bulletBtn.main.queue.forEach((function(e){e.pauseMove(n.containerPos),e.remove()})),n.channels&&n.channels.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(e){for(var t=0;t<n.channels.length;t++)n.channels[t].queue[e].forEach((function(e){e.pauseMove(n.containerPos),e.remove()}))})),n.danmu.bulletBtn&&n.danmu.bulletBtn.main&&n.danmu.bulletBtn.main.data&&n.danmu.bulletBtn.main.data.forEach((function(e){e.hasAttached=!1})),e?this.resetTimer=setTimeout(i,200):i()}},{key:\"resetWithCb\",value:function(e,t){this.logger&&this.logger.info(\"resetWithCb\");var n=this.danmu.container,i=this;i.channels&&i.channels.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(e){for(var t=0;t<i.channels.length;t++)i.channels[t].queue[e].forEach((function(e){e.pauseMove(i.containerPos),e.remove()}))}));var o=n.getBoundingClientRect();i.width=o.width,i.height=o.height,i.danmu.config.area&&i.danmu.config.area.start>=0&&i.danmu.config.area.end>=i.danmu.config.area.start&&(\"b2t\"===i.direction?i.width=i.width*(i.danmu.config.area.end-i.danmu.config.area.start):i.height=i.height*(i.danmu.config.area.end-i.danmu.config.area.start)),i.container=n;var r=i.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),a=void 0;a=\"b2t\"===i.direction?Math.floor(i.width/r):Math.floor(i.height/r);for(var s=[],l=0;l<a;l++)s[l]={id:l,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};i.channels=s,i.channelHeight=r,e&&e(!0,t)}}]),t}(o.default);t.default=s,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=a(n(1)),r=a(n(0));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));i.setLogger(\"bullet\"),i.danmu=e,i.options=n,i.duration=n.duration,i.moveV=n.moveV,i.id=n.id,i.container=e.container,i.start=n.start,i.prior=n.prior,i.color=n.color,i.bookChannelId=n.bookChannelId,i.direction=e.direction;var o=i;i.onChangeDirection=function(e){o.direction=e},i.danmu.on(\"changeDirection\",i.onChangeDirection);var a=void 0;if(i.domObj=e.domObj,n.el&&1===n.el.nodeType){a=i.domObj.use();var s=r.default.copyDom(n.el);n.eventListeners&&n.eventListeners.length>0&&n.eventListeners.forEach((function(e){s.addEventListener(e.event,e.listener,e.useCapture||!1)})),a.appendChild(s)}else(a=i.domObj.use()).textContent=n.txt;if(n.style){var l=n.style;Object.keys(l).forEach((function(e){r.default.style(a,e,l[e])}))}\"top\"===n.mode||\"bottom\"===n.mode?i.mode=n.mode:i.mode=\"scroll\",i.el=a,n.like&&n.like.el&&i.setLikeDom(n.like.el,n.like.style),i.status=\"waiting\";var u=i.container.getBoundingClientRect(),c=Math.floor(Math.random()*(u.width/10>100?200:u.width/10));n.realTime&&(c=0);var f=u.width+c+\"px\";return r.default.style(i.el,\"left\",f),i.containerPos=u,i}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"attach\",value:function(){if(this.container.appendChild(this.el),this.elPos=this.el.getBoundingClientRect(),\"b2t\"===this.direction?(this.width=this.elPos.height,this.height=this.elPos.width):(this.width=this.elPos.width,this.height=this.elPos.height),this.moveV){var e=this.containerPos;this.duration=(e.width+this.width)/this.moveV*1e3}this.danmu.config&&this.danmu.config.mouseControl&&(this.mouseoverFunWrapper=this.mouseoverFun.bind(this),this.el.addEventListener(\"mouseover\",this.mouseoverFunWrapper,!1)),this.danmu.config&&this.danmu.config.mouseEnterControl&&(this.mouseEnterFunWrapper=this.mouseoverFun.bind(this),this.el.addEventListener(\"mouseenter\",this.mouseEnterFunWrapper,!1))}},{key:\"mouseoverFun\",value:function(e){this.danmu&&this.danmu.mouseControl&&this.danmu.config.mouseControlPause||\"waiting\"===this.status||\"end\"===this.status||this.danmu&&this.danmu.emit(\"bullet_hover\",{bullet:this,event:e})}},{key:\"detach\",value:function(){this.el&&(this.danmu.config&&this.danmu.config.mouseControl&&this.el.removeEventListener(\"mouseover\",this.mouseoverFunWrapper,!1),this.danmu.config&&this.danmu.config.mouseEnterControl&&this.el.removeEventListener(\"mouseenter\",this.mouseEnterFunWrapper,!1),this.el.parentNode&&this.el.parentNode.removeChild(this.el),this.domObj.unuse(this.el),this.el=null),this.danmu.off(\"changeDirection\",this.onChangeDirection)}},{key:\"topInit\",value:function(){if(this.logger&&this.logger.info(\"topInit #\"+(this.options.txt||\"[DOM Element]\")+\"#\"),\"b2t\"===this.direction){var e=this.containerPos;r.default.style(this.el,\"transformOrigin\",\"left top\"),r.default.style(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+e.height+\"px) translateZ(0px) rotate(90deg)\"),r.default.style(this.el,\"transition\",\"transform 0s linear 0s\")}else r.default.style(this.el,\"top\",this.top+\"px\")}},{key:\"pauseMove\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.logger&&this.logger.info(\"pauseMove #\"+(this.options.txt||\"[DOM Element]\")+\"#\");var n=this;if(\"paused\"!==this.status&&(\"forcedPause\"!==n.status&&(this.status=\"paused\"),clearTimeout(n.removeTimer),this.el))if(r.default.style(this.el,\"willChange\",\"auto\"),\"scroll\"===this.mode){if(t){var i=((new Date).getTime()-n.moveTime)/1e3,o=i*this.moveV,a=0;a=n.moveMoreS-o>=0?\"b2t\"===this.direction?(n.moveMoreS-o)/n.moveContainerHeight*e.height:(n.moveMoreS-o)/n.moveContainerWidth*e.width:n.moveMoreS-o,\"b2t\"===this.direction?r.default.style(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+a+\"px) translateZ(0px) rotate(90deg)\"):r.default.style(this.el,\"left\",a+\"px\")}else\"b2t\"===this.direction?r.default.style(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+(this.el.getBoundingClientRect().top-e.top)+\"px) translateZ(0px) rotate(90deg)\"):r.default.style(this.el,\"left\",this.el.getBoundingClientRect().left-e.left+\"px\");\"b2t\"===this.direction||r.default.style(this.el,\"transform\",\"translateX(0px) translateY(0px) translateZ(0px)\"),r.default.style(this.el,\"transition\",\"transform 0s linear 0s\")}else this.pastDuration&&this.startTime?this.pastDuration=this.pastDuration+(new Date).getTime()-this.startTime:this.pastDuration=1}},{key:\"startMove\",value:function(e,t){this.logger&&this.logger.info(\"startMove #\"+(this.options.txt||\"[DOM Element]\")+\"#\");var n=this;if(n.hasMove||(n.danmu.emit(\"bullet_start\",n),n.hasMove=!0),(\"forcedPause\"!==n.status||t)&&this.el&&\"start\"!==this.status)if(this.status=\"start\",r.default.style(this.el,\"willChange\",\"transform\"),\"scroll\"===this.mode)if(\"b2t\"===this.direction){this.moveV=(e.height+this.height)/this.duration*1e3;var i=(n.el.getBoundingClientRect().bottom-e.top)/this.moveV;r.default.style(this.el,\"transition\",\"transform \"+i+\"s linear 0s\"),this.startMoveTimer=setTimeout((function(){n.el&&(r.default.style(n.el,\"transform\",\"translateX(-\"+n.top+\"px) translateY(-\"+n.height+\"px) translateZ(0px) rotate(90deg)\"),n.moveTime=(new Date).getTime(),n.moveMoreS=n.el.getBoundingClientRect().top-e.top,n.moveContainerHeight=e.height,n.removeTimer=setTimeout(l,1e3*i))}),20)}else{var o=this.el.getBoundingClientRect();this.moveV=(e.width+this.width)/this.duration*1e3;var a=(o.right-e.left)/this.moveV;r.default.style(this.el,\"transition\",\"transform \"+a+\"s linear 0s\"),this.startMoveTimer=setTimeout((function(){if(n.el){var t=n.el.getBoundingClientRect(),i=(t.right-e.left)/a;t.right>e.left&&i>n.moveV-1&&i<n.moveV+1?(r.default.style(n.el,\"transform\",\"translateX(-\"+(t.right-e.left)+\"px) translateY(0px) translateZ(0px)\"),n.moveTime=(new Date).getTime(),n.moveMoreS=t.left-e.left,n.moveContainerWidth=e.width,n.removeTimer=setTimeout(l,1e3*a)):(n.status=\"end\",n.remove())}}),0)}else{r.default.style(this.el,\"left\",\"50%\"),r.default.style(this.el,\"margin\",\"0 0 0 -\"+this.width/2+\"px\"),this.pastDuration||(this.pastDuration=1);var s=this.duration>=this.pastDuration?this.duration-this.pastDuration:0;this.removeTimer=setTimeout(l,s),this.startTime=(new Date).getTime()}function l(){if(n.el)if(\"scroll\"===n.mode){var e=n.containerPos,t=n.el.getBoundingClientRect();\"b2t\"===n.direction?t&&t.bottom<=e.top+100?(n.status=\"end\",n.remove()):(n.pauseMove(e),\"paused\"!==n.danmu.bulletBtn.main.status&&n.startMove(e)):t&&t.right<=e.left+100?(n.status=\"end\",n.remove()):(n.pauseMove(e),\"paused\"!==n.danmu.bulletBtn.main.status&&n.startMove(e))}else n.status=\"end\",n.remove()}}},{key:\"remove\",value:function(){this.logger&&this.logger.info(\"remove #\"+(this.options.txt||\"[DOM Element]\")+\"#\");this.removeTimer&&clearTimeout(this.removeTimer),this.startMoveTimer&&clearTimeout(this.startMoveTimer),this.el&&this.el.parentNode&&(r.default.style(this.el,\"willChange\",\"auto\"),this.detach(),this.danmu.emit(\"bullet_remove\",{bullet:this}))}},{key:\"setFontSize\",value:function(e){this.el&&(this.el.style.fontSize=e)}},{key:\"setLikeDom\",value:function(e,t){if(e){Object.keys(t).forEach((function(n){e.style[n]=t[n]}));if(e.className=\"danmu-like\",this.el){var n=this.el.querySelector(\".danmu-like\");n&&this.el.removeChild(n),this.el.innerHTML=\"\"+this.el.innerHTML+e.outerHTML}}return e}}]),t}(o.default);t.default=s,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=n(0),a=(i=r)&&i.__esModule?i:{default:i};var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),t={initDOM:function(){return document.createElement(\"div\")},initSize:10},this.init(t)}return o(e,[{key:\"init\",value:function(e){this.idleList=[],this.usingList=[],this._id=0,this.options=e,this._expand(e.initSize)}},{key:\"use\",value:function(){this.idleList.length||this._expand(1);var e=this.idleList.shift();return this.usingList.push(e),e}},{key:\"unuse\",value:function(e){var t=this.usingList.indexOf(e);t<0||(this.usingList.splice(t,1),e.innerHTML=\"\",e.textcontent=\"\",this.clearElementStyle(e),this.idleList.push(e))}},{key:\"_expand\",value:function(e){for(var t=0;t<e;t++)this.idleList.push(this.options.initDOM(this._id++))}},{key:\"destroy\",value:function(){for(var e=0;e<this.idleList.length;e++)this.idleList[e].innerHTML=\"\",this.idleList[e].textcontent=\"\",this.clearElementStyle(this.idleList[e]);for(var t=0;t<this.usingList.length;t++)this.usingList[t].innerHTML=\"\",this.usingList[t].textcontent=\"\",this.clearElementStyle(this.usingList[t]);for(var n in this)delete this[n]}},{key:\"clearElementStyle\",value:function(e){var t=\"undefined\"!=typeof window?window.navigator.userAgent:null;t&&(t.indexOf(\"MSIE \")>-1||t.indexOf(\"Trident/\")>-1?a.default.style(e,\"transform\",\"none\"):e.setAttribute(\"style\",\"\"))}}]),e}();t.default=s,e.exports=t.default},function(e){e.exports=JSON.parse('{\"version\":\"0.5.10\"}')},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var o=new(function(){function e(){var t=this;if(function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.__handlers=[],window.ResizeObserver)try{this.observer=new window.ResizeObserver((function(e){var n=(new Date).getTime();n-t.timeStampe<200||(t.timeStampe=n,t.__trigger(e))})),this.timeStampe=(new Date).getTime()}catch(e){}}return i(e,[{key:\"addObserver\",value:function(e,t){if(this.observer){this.observer&&this.observer.observe(e);for(var n=this.__handlers,i=-1,o=0;o<n.length;o++)n[o]&&e===n[o].target&&(i=o);i>-1?this.__handlers[i].handler.push(t):this.__handlers.push({target:e,handler:[t]})}}},{key:\"unObserver\",value:function(e){var t=-1;this.__handlers.map((function(n,i){e===n.target&&(t=i)})),this.observer&&this.observer.unobserve(e),t>-1&&this.__handlers.splice(t,1)}},{key:\"destroyObserver\",value:function(){this.observer&&this.observer.disconnect(),this.observer=null,this.__handlers=null}},{key:\"__runHandler\",value:function(e){for(var t=this.__handlers,n=0;n<t.length;n++)if(t[n]&&e===t[n].target){t[n].handler&&t[n].handler.map((function(e){try{e()}catch(e){console.error(e)}}));break}}},{key:\"__trigger\",value:function(e){var t=this;e.map((function(e){t.__runHandler(e.target)}))}}]),e}());t.addObserver=function(e,t){o.addObserver(e,t)},t.unObserver=function(e,t){o.unObserver(e,t)},t.destroyObserver=function(e,t){o.destroyObserver(e,t)}},function(e,t,n){var i=n(35);\"string\"==typeof i&&(i=[[e.i,i,\"\"]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(37)(i,o);i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(36)(!1)).push([e.i,\".danmu{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.danmu>*{position:absolute;white-space:nowrap}.danmu-switch{width:32px;height:20px;border-radius:100px;background-color:#ccc;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;cursor:pointer;position:relative;text-align:center;margin:10px auto}.danmu-switch.danmu-switch-active{padding-left:12px;background-color:#f85959}.danmu-switch span.txt{width:20px;height:20px;line-height:20px;text-align:center;display:block;border-radius:100px;background-color:#ffffff;-webkit-box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);font-family:PingFangSC;font-size:10px;font-weight:500;color:#f44336}\\n\",\"\"])},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||\"\",i=e[3];if(!i)return n;if(t&&\"function\"==typeof btoa){var o=(a=i,\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+\" */\"),r=i.sources.map((function(e){return\"/*# sourceURL=\"+i.sourceRoot+e+\" */\"}));return[n].concat(r).concat([o]).join(\"\\n\")}var a;return[n].join(\"\\n\")}(t,e);return t[2]?\"@media \"+t[2]+\"{\"+n+\"}\":n})).join(\"\")},t.i=function(e,n){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var i={},o=0;o<this.length;o++){var r=this[o][0];\"number\"==typeof r&&(i[r]=!0)}for(o=0;o<e.length;o++){var a=e[o];\"number\"==typeof a[0]&&i[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]=\"(\"+a[2]+\") and (\"+n+\")\"),t.push(a))}},t}},function(e,t,n){var i,o,r={},a=(i=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=i.apply(this,arguments)),o}),s=function(e){return document.querySelector(e)},l=function(e){var t={};return function(e){if(\"function\"==typeof e)return e();if(void 0===t[e]){var n=s.call(this,e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}}(),u=null,c=0,f=[],h=n(38);function d(e,t){for(var n=0;n<e.length;n++){var i=e[n],o=r[i.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](i.parts[a]);for(;a<i.parts.length;a++)o.parts.push(y(i.parts[a],t))}else{var s=[];for(a=0;a<i.parts.length;a++)s.push(y(i.parts[a],t));r[i.id]={id:i.id,refs:1,parts:s}}}}function g(e,t){for(var n=[],i={},o=0;o<e.length;o++){var r=e[o],a=t.base?r[0]+t.base:r[0],s={css:r[1],media:r[2],sourceMap:r[3]};i[a]?i[a].parts.push(s):n.push(i[a]={id:a,parts:[s]})}return n}function p(e,t){var n=l(e.insertInto);if(!n)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");var i=f[f.length-1];if(\"top\"===e.insertAt)i?i.nextSibling?n.insertBefore(t,i.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),f.push(t);else if(\"bottom\"===e.insertAt)n.appendChild(t);else{if(\"object\"!=typeof e.insertAt||!e.insertAt.before)throw new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");var o=l(e.insertInto+\" \"+e.insertAt.before);n.insertBefore(t,o)}}function m(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=f.indexOf(e);t>=0&&f.splice(t,1)}function v(e){var t=document.createElement(\"style\");return void 0===e.attrs.type&&(e.attrs.type=\"text/css\"),b(t,e.attrs),p(e,t),t}function b(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function y(e,t){var n,i,o,r;if(t.transform&&e.css){if(!(r=t.transform(e.css)))return function(){};e.css=r}if(t.singleton){var a=c++;n=u||(u=v(t)),i=O.bind(null,n,a,!1),o=O.bind(null,n,a,!0)}else e.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(e){var t=document.createElement(\"link\");return void 0===e.attrs.type&&(e.attrs.type=\"text/css\"),e.attrs.rel=\"stylesheet\",b(t,e.attrs),p(e,t),t}(t),i=x.bind(null,n,t),o=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),i=k.bind(null,n),o=function(){m(n)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else o()}}e.exports=function(e,t){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(t=t||{}).attrs=\"object\"==typeof t.attrs?t.attrs:{},t.singleton||\"boolean\"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto=\"head\"),t.insertAt||(t.insertAt=\"bottom\");var n=g(e,t);return d(n,t),function(e){for(var i=[],o=0;o<n.length;o++){var a=n[o];(s=r[a.id]).refs--,i.push(s)}e&&d(g(e,t),t);for(o=0;o<i.length;o++){var s;if(0===(s=i[o]).refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete r[s.id]}}}};var w,_=(w=[],function(e,t){return w[e]=t,w.filter(Boolean).join(\"\\n\")});function O(e,t,n,i){var o=n?\"\":i.css;if(e.styleSheet)e.styleSheet.cssText=_(t,o);else{var r=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(r,a[t]):e.appendChild(r)}}function k(e,t){var n=t.css,i=t.media;if(i&&e.setAttribute(\"media\",i),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function x(e,t,n){var i=n.css,o=n.sourceMap,r=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||r)&&(i=h(i)),o&&(i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([i],{type:\"text/css\"}),s=e.href;e.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}},function(e,t){e.exports=function(e){var t=\"undefined\"!=typeof window&&window.location;if(!t)throw new Error(\"fixUrls requires window.location\");if(!e||\"string\"!=typeof e)return e;var n=t.protocol+\"//\"+t.host,i=n+t.pathname.replace(/\\/[^\\/]*$/,\"/\");return e.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi,(function(e,t){var o,r=t.trim().replace(/^\"(.*)\"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(r)?e:(o=0===r.indexOf(\"//\")?r:0===r.indexOf(\"/\")?n+r:i+r.replace(/^\\.\\//,\"\"),\"url(\"+JSON.stringify(o)+\")\")}))}}])}));\n//# sourceMappingURL=index.js.map","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ( 'ontouchstart' in window ) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./enter.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./enter.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./enter.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000;z-index:120}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner{display:block;position:absolute;left:50%;top:50%;height:100px;width:100px;position:relative;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div{width:12%;height:26%;background-color:hsla(0,0%,100%,.7);position:absolute;left:44%;top:37%;opacity:0;border-radius:30px;-webkit-animation:fade 1s linear infinite;animation:fade 1s linear infinite}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar1{-webkit-transform:rotate(0deg) translateY(-142%);-ms-transform:rotate(0deg) translateY(-142%);transform:rotate(0deg) translateY(-142%);-webkit-animation-delay:0s;animation-delay:0s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar2{-webkit-transform:rotate(30deg) translateY(-142%);-ms-transform:rotate(30deg) translateY(-142%);transform:rotate(30deg) translateY(-142%);-webkit-animation-delay:-.9163s;animation-delay:-.9163s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar3{-webkit-transform:rotate(60deg) translateY(-142%);-ms-transform:rotate(60deg) translateY(-142%);transform:rotate(60deg) translateY(-142%);-webkit-animation-delay:-.833s;animation-delay:-.833s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar4{-webkit-transform:rotate(90deg) translateY(-142%);-ms-transform:rotate(90deg) translateY(-142%);transform:rotate(90deg) translateY(-142%);-webkit-animation-delay:-.7497s;animation-delay:-.7497s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar5{-webkit-transform:rotate(120deg) translateY(-142%);-ms-transform:rotate(120deg) translateY(-142%);transform:rotate(120deg) translateY(-142%);-webkit-animation-delay:-.6664s;animation-delay:-.6664s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar6{-webkit-transform:rotate(150deg) translateY(-142%);-ms-transform:rotate(150deg) translateY(-142%);transform:rotate(150deg) translateY(-142%);-webkit-animation-delay:-.5831s;animation-delay:-.5831s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar7{-webkit-transform:rotate(180deg) translateY(-142%);-ms-transform:rotate(180deg) translateY(-142%);transform:rotate(180deg) translateY(-142%);-webkit-animation-delay:-.4998s;animation-delay:-.4998s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar8{-webkit-transform:rotate(210deg) translateY(-142%);-ms-transform:rotate(210deg) translateY(-142%);transform:rotate(210deg) translateY(-142%);-webkit-animation-delay:-.4165s;animation-delay:-.4165s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar9{-webkit-transform:rotate(240deg) translateY(-142%);-ms-transform:rotate(240deg) translateY(-142%);transform:rotate(240deg) translateY(-142%);-webkit-animation-delay:-.3332s;animation-delay:-.3332s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar10{-webkit-transform:rotate(270deg) translateY(-142%);-ms-transform:rotate(270deg) translateY(-142%);transform:rotate(270deg) translateY(-142%);-webkit-animation-delay:-.2499s;animation-delay:-.2499s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar11{-webkit-transform:rotate(300deg) translateY(-142%);-ms-transform:rotate(300deg) translateY(-142%);transform:rotate(300deg) translateY(-142%);-webkit-animation-delay:-.1666s;animation-delay:-.1666s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar12{-webkit-transform:rotate(330deg) translateY(-142%);-ms-transform:rotate(330deg) translateY(-142%);transform:rotate(330deg) translateY(-142%);-webkit-animation-delay:-.0833s;animation-delay:-.0833s}@-webkit-keyframes fade{0%{opacity:1}to{opacity:.25}}@keyframes fade{0%{opacity:1}to{opacity:.25}}.xgplayer-skin-default.xgplayer-is-enter .xgplayer-enter{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./cssfullscreen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./cssfullscreen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./cssfullscreen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-cssfullscreen,.xgplayer-skin-default .xgplayer-cssfullscreen-img{position:relative;-webkit-order:12;-moz-box-ordinal-group:13;order:12;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon{width:32px;margin-top:5px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-40px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover,.xgplayer-skin-default .xgplayer-cssfullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-47px}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen-img{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}.xgplayer-lang-is-en .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-46px}.lang-is-jp .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-120px}.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-60px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./volume.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./volume.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./volume.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-volume{outline:none;-webkit-order:4;-moz-box-ordinal-group:5;order:4;width:40px;height:40px;display:block;position:relative;z-index:18}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon{margin-top:8px;cursor:pointer;position:absolute;bottom:-9px}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:none}.xgplayer-skin-default .xgplayer-slider{display:none;position:absolute;width:28px;height:92px;background:rgba(0,0,0,.54);border-radius:1px;bottom:42px;outline:none}.xgplayer-skin-default .xgplayer-slider:after{content:\\\" \\\";display:block;height:15px;width:28px;position:absolute;bottom:-15px;left:0;z-index:20}.xgplayer-skin-default .xgplayer-bar,.xgplayer-skin-default .xgplayer-drag{display:block;position:absolute;bottom:6px;left:12px;background:hsla(0,0%,100%,.3);border-radius:100px;width:4px;height:76px;outline:none;cursor:pointer}.xgplayer-skin-default .xgplayer-drag{bottom:0;left:0;background:#fa1f41;max-height:76px}.xgplayer-skin-default .xgplayer-drag:after{content:\\\" \\\";display:inline-block;width:8px;height:8px;background:#fff;box-shadow:0 0 5px 0 rgba(0,0,0,.26);position:absolute;border-radius:50%;left:-2px;top:-6px}.xgplayer-skin-default.xgplayer-volume-active .xgplayer-slider,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:none}.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:block}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-large,.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:none}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:block}.xgplayer-skin-default.xgplayer-mobile .xgplayer-volume .xgplayer-slider{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./definition.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./definition.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./definition.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-definition{-webkit-order:5;-moz-box-ordinal-group:6;order:5;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-left:10px;margin-top:-119px}.xgplayer-skin-default .xgplayer-definition ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:0;text-align:center;white-space:nowrap;margin-left:-10px;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-definition ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-skin-default .xgplayer-definition ul li.selected,.xgplayer-skin-default .xgplayer-definition ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-definition .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-definition ul,.xgplayer-skin-default.xgplayer-is-definition .xgplayer-definition{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playbackRate.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playbackRate.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playbackRate.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-playbackrate{-webkit-order:8;-moz-box-ordinal-group:9;order:8;width:60px;height:150px;z-index:18;position:relative;display:inline-block;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-playbackrate ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);text-align:left;white-space:nowrap;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-playbackrate ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);position:relative;padding:4px 0;text-align:center}.xgplayer-skin-default .xgplayer-playbackrate ul li.selected,.xgplayer-skin-default .xgplayer-playbackrate ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-playbackrate ul li:first-child{position:relative;margin-top:12px}.xgplayer-skin-default .xgplayer-playbackrate ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-skin-default .xgplayer-playbackrate .name{width:60px;height:20px;position:absolute;bottom:0;text-align:center;font-family:PingFangSC-Regular;font-size:13px;background:rgba(0,0,0,.38);color:hsla(0,0%,100%,.8);border-radius:10px;line-height:20px}.xgplayer-skin-default .xgplayer-playbackrate span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-skin-default .xgplayer-playbackrate:hover{opacity:1}.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-playbackrate ul{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./download.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./download.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./download.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-download{position:relative;-webkit-order:9;-moz-box-ordinal-group:10;order:9;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-download .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-download .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-download .xgplayer-icon svg{position:relative;top:5px;left:5px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips{margin-left:-20px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips .xgplayer-tip-download{display:block}.xgplayer-skin-default .xgplayer-download:hover{opacity:.85}.xgplayer-skin-default .xgplayer-download:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-download .xgplayer-tips{margin-left:-32px}.xgplayer-lang-is-jp .xgplayer-download .xgplayer-tips{margin-left:-40px}\", \"\"]);\n\n// exports\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./danmu.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./danmu.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./danmu.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .danmu-switch{-webkit-order:6;-moz-box-ordinal-group:7;order:6;z-index:26}.xgplayer-skin-default .xgplayer-danmu{display:none;position:absolute;top:0;left:0;right:0;height:100%;overflow:hidden;z-index:9;outline:none}.xgplayer-skin-default .xgplayer-danmu>*{position:absolute;white-space:nowrap;z-index:9}.xgplayer-skin-default .xgplayer-danmu.xgplayer-has-danmu{display:block}.xgplayer-skin-default .xgplayer-panel{outline:none;-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:40px;height:40px;display:inline-block;position:relative;font-family:PingFangSC-Regular;font-size:13px;color:hsla(0,0%,100%,.8);z-index:36}.xgplayer-skin-default .xgplayer-panel .xgplayer-panel-icon{cursor:pointer;position:absolute;margin-left:5px;top:10px}.xgplayer-skin-default .xgplayer-panel-active{display:block!important;bottom:30px}.xgplayer-skin-default .xgplayer-panel-slider{z-index:36;display:none;position:absolute;width:230px;height:230px;background:rgba(0,0,0,.54);border-radius:1px;padding:10px 20px;outline:none;left:-115px;bottom:40px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode{padding-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-radio li{display:inline;list-style:none;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode ul{display:-webkit-flex;display:-moz-box;display:flex;-webkit-justify-content:space-around;justify-content:space-around}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode li{margin:0 12px;font-size:11px;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-font{margin-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency{display:block;margin-top:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-progress{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:4px;background:linear-gradient(90deg,#f85959,#f85959 100%,#aaa)}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea{display:block;margin-top:8px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-threequarters,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-twoquarters{margin-left:-6px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-full{margin-right:3px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-full-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-onequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-threequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-twoquarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-zero-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./pip.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./pip.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./pip.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-pip{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-pip .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-pip .name span{width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.lang-is-jp .xgplayer-pip .name span{width:70px;height:20px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./miniplayer.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./miniplayer.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./miniplayer.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-miniplayer{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-miniplayer .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-miniplayer .name span{width:80px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-miniplayer-lay{position:absolute;top:26px;left:0;width:100%;height:100%;z-index:130;cursor:pointer;background-color:transparent;display:none}.xgplayer-skin-default .xgplayer-miniplayer-lay div{width:100%;height:100%}.xgplayer-skin-default .xgplayer-miniplayer-drag{cursor:move;position:absolute;top:0;left:0;width:100%;height:26px;line-height:26px;background-image:linear-gradient(rgba(0,0,0,.3),transparent);z-index:130;display:none}.xgplayer-skin-default .xgplayer-miniplayer-drag .drag-handle{width:100%}.xgplayer-skin-default.xgplayer-miniplayer-active{position:fixed;right:0;bottom:200px;width:320px;height:180px;z-index:110}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-controls,.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-danmu{display:none}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-lay{display:block}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-drag{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-skin-default.xgplayer-inactive .xgplayer-miniplayer-drag{display:none}.lang-is-jp .xgplayer-miniplayer .name span{width:70px;height:20px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playNext.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playNext.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playNext.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-playnext{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;cursor:pointer;top:-2px}.xgplayer-skin-default .xgplayer-playnext .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-playnext .xgplayer-tips .xgplayer-tip-playnext{display:block}.xgplayer-skin-default .xgplayer-playnext:hover{opacity:.85}.xgplayer-skin-default .xgplayer-playnext:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-playnext .xgplayer-tips{margin-left:-25px}.xgplayer-lang-is-jp .xgplayer-playnext .xgplayer-tips{margin-left:-38px}.xgplayer-skin-default.xgplayer-playnext-inactive .xgplayer-playnext{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./rotate.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./rotate.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./rotate.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-rotate{position:relative;-webkit-order:10;-moz-box-ordinal-group:11;order:10;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips .xgplayer-tip-rotate{display:block}.xgplayer-skin-default .xgplayer-rotate:hover{opacity:.85}.xgplayer-skin-default .xgplayer-rotate:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-rotate .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-rotate .xgplayer-tips{margin-left:-38px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./reload.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./reload.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./reload.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-reload{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;width:40px;height:40px;cursor:pointer}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips .xgplayer-tip-reload{display:block}.xgplayer-skin-default .xgplayer-reload:hover{opacity:.85}.xgplayer-skin-default .xgplayer-reload:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-reload .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-reload .xgplayer-tips{margin-left:-38px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./screenShot.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./screenShot.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./screenShot.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-screenshot{-webkit-order:11;-moz-box-ordinal-group:12;order:11;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-screenshot .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-screenshot .name span{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:0 10px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-lang-is-en .xgplayer-screenshot .name span,.xgplayer-lang-is-jp .xgplayer-screenshot .name span{width:75px;height:20px}\", \"\"]);\n\n// exports\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-texttrack{-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-texttrack ul{display:none;list-style:none;min-width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;text-align:center;white-space:nowrap;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-texttrack ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:auto;padding:6px 13px}.xgplayer-skin-default .xgplayer-texttrack ul li.selected,.xgplayer-skin-default .xgplayer-texttrack ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-texttrack .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-texttrack.xgplayer-texttrack-hide{display:none}xg-text-track{transition:bottom .3s ease}.xgplayer-skin-default.xgplayer-is-texttrack .xgplayer-texttrack,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-texttrack ul{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./error.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./error.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./error.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:125;font-family:PingFangSC-Regular;font-size:14px;color:#fff;text-align:center;line-height:100%;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center}.xgplayer-skin-default .xgplayer-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-skin-default .xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px}.xgplayer-skin-default.xgplayer-is-error .xgplayer-error{display:-webkit-flex;display:-moz-box;display:flex}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./memoryPlay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./memoryPlay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./memoryPlay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-memoryplay-spot{position:absolute;height:32px;left:10px;bottom:46px;background:rgba(0,0,0,.5);border-radius:32px;line-height:32px;color:#ddd;z-index:15;padding:0 32px 0 16px}.xgplayer-skin-default .xgplayer-memoryplay-spot .xgplayer-lasttime{color:red;font-weight:700}.xgplayer-skin-default .xgplayer-memoryplay-spot .btn-close{position:absolute;width:16px;height:16px;right:10px;top:2px;cursor:pointer;color:#fff;font-size:16px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./airplay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./airplay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./airplay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-airplay{position:relative;-webkit-order:11;-moz-box-ordinal-group:12;order:11;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon{margin-top:6px;margin-left:6px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon .xgplayer-icon-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips .xgplayer-tip-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay:hover{opacity:.85}.xgplayer-skin-default .xgplayer-airplay:hover .xgplayer-tips{display:block}\", \"\"]);\n\n// exports\n","let airplay = function () {\n let player = this\n if(!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent) return\n\n function onAirplayBtnClick () {\n player.video.webkitShowPlaybackTargetPicker()\n }\n player.on('airplayBtnClick', onAirplayBtnClick)\n\n function onDestroy () {\n player.off('airplayBtnClick', onAirplayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'airplay',\n method: airplay\n}\n","import { hasClass, removeClass, addClass } from '../utils/util'\n\nlet cssFullscreen = function () {\n let player = this\n let root = player.root\n\n function onCssFullscreenBtnClick () {\n if (hasClass(root, 'xgplayer-is-cssfullscreen')) {\n player.exitCssFullscreen()\n } else {\n player.getCssFullscreen()\n }\n }\n player.on('cssFullscreenBtnClick', onCssFullscreenBtnClick)\n player.on('exitFullscreen', () => {\n removeClass(root, 'xgplayer-is-cssfullscreen')\n })\n\n function onDestroy () {\n player.off('cssFullscreenBtnClick', onCssFullscreenBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getCssFullscreen = function () {\n let player = this\n if (player.config.fluid) {\n player.root.style['padding-top'] = ''\n }\n addClass(player.root, 'xgplayer-is-cssfullscreen')\n player.emit('requestCssFullscreen')\n }\n\n player.exitCssFullscreen = function () {\n let player = this\n if (player.config.fluid) {\n player.root.style['width'] = '100%'\n player.root.style['height'] = '0'\n player.root.style['padding-top'] = `${player.config.height * 100 / player.config.width}%`\n }\n removeClass(player.root, 'xgplayer-is-cssfullscreen')\n player.emit('exitCssFullscreen')\n }\n}\n\nexport default {\n name: 'cssFullscreen',\n method: cssFullscreen\n}","import { addClass, toggleClass, copyDom, hasClass, removeClass } from '../utils/util'\n\nlet danmu = function () {\n let player = this\n\n function onInitDanmu(danmujs) {\n let container = player.root.querySelector('xg-danmu')\n addClass(container, 'xgplayer-has-danmu')\n if (!player.config.danmu.closeDefaultBtn) {\n player.danmuBtn = copyDom(danmujs.bulletBtn.createSwitch(true))\n player.controls.appendChild(player.danmuBtn)\n\n function onTimeupdate () {\n danmujs.start()\n }\n ['click', 'touchend'].forEach(item => {\n player.danmuBtn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n toggleClass(player.danmuBtn, 'danmu-switch-active')\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n player.emit('danmuBtnOn')\n addClass(container, 'xgplayer-has-danmu')\n player.once('timeupdate', onTimeupdate)\n } else {\n player.emit('danmuBtnOff')\n removeClass(container, 'xgplayer-has-danmu')\n danmujs.stop()\n }\n })\n })\n\n player.onElementClick && container.addEventListener('click', function (e) { player.onElementClick(e, container) }, false)\n player.onElementDblclick && container.addEventListener('dblclick', function (e) { player.onElementDblclick(e, container) }, false)\n\n function onPause () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.pause()\n }\n }\n player.on('pause', onPause)\n\n function onPlay () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.play()\n }\n }\n player.on('play', onPlay)\n\n function onSeeked () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.stop()\n danmujs.start()\n }\n }\n player.on('seeked', onSeeked)\n\n function onDestroy () {\n player.off('timeupdate', onTimeupdate)\n player.off('pause', onPause)\n player.off('play', onPlay)\n player.off('seeked', onSeeked)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n }\n }\n player.on('initDefaultDanmu', onInitDanmu)\n\n}\n\nexport default {\n name: 'danmu',\n method: danmu\n}","let definition = function () {\n let player = this\n\n function onDestroy () {\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'definition',\n method: definition\n}","import downloadUtil from 'downloadjs'\nimport {getAbsoluteURL} from '../utils/url'\n\nlet download = function () {\n let player = this\n\n function onDownloadBtnClick () {\n // must pass an absolute url for download\n player.download()\n }\n player.on('downloadBtnClick', onDownloadBtnClick)\n\n function onDestroy () {\n player.off('downloadBtnClick', onDownloadBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.download = function () {\n const url = getAbsoluteURL(this.config.url)\n downloadUtil(url)\n }\n}\n\nexport default {\n name: 'download',\n method: download\n}","\nexport const getAbsoluteURL = function (url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n const div = document.createElement('div')\n div.innerHTML = `<a href=\"${url}\">x</a>`\n url = div.firstChild.href\n }\n return url\n}\n","import Errors from '../error'\n/**\n * Error retry plugin\n * get config from player.config.errorConfig\n * The Plugin is just deal with the situation that play with video.src,\n * and get the http status of current video.src\n */\n\nconst defaultConfig = {\n maxCount: 3, // max number of retries\n backupUrl: '', // the backup url for retry\n isFetch: true, // is need to check the cdn url statud\n fetchTimeout: 100 // timeout time for get cdn status\n}\n\nfunction errorRetry () {\n const player = this\n // 无设置参数或者是通过扩展播放的不做处理\n if (!player.config.errorConfig || player.src.indexOf('blob:') > -1) {\n return\n }\n const errorConfig = {}\n const _inConfig = player.config.errorConfig\n for (const key in defaultConfig) {\n if (_inConfig[key] === undefined) {\n errorConfig[key] = defaultConfig[key]\n } else {\n errorConfig[key] = _inConfig[key]\n }\n }\n player.retryData = {\n count: 0, // 重试次数\n errfTimer: null, // 超时设置定时器\n isFetchReturn: false, // fetch请求是否已经返回\n currentTime: 0 // 出错的时候时间\n }\n\n function errorfetch (player, url, timeout) {\n const resolveFun = (resolve, data) => {\n if (!player.retryData.isFetchReturn) {\n player.retryData.isFetchReturn = true\n resolve(data)\n }\n }\n return new Promise((resolve, reject) => {\n try {\n let xhr = new window.XMLHttpRequest()\n xhr.open('get', url)\n xhr.onload = function () {\n resolveFun(resolve, {status: xhr.status, statusText: xhr.statusText, xhr})\n }\n xhr.onerror = function () {\n resolveFun(resolve, {status: xhr.status, statusText: xhr.statusText || 'The network environment is disconnected or the address is invalid', xhr})\n }\n xhr.onabort = function () {\n // console.log('task onerror', xhr)\n }\n player.retryData.errfTimer = window.setTimeout(() => {\n let errfTimer = player.retryData.errfTimer\n window.clearTimeout(errfTimer)\n player.retryData.errfTimer = null\n resolveFun(resolve, {status: -1, statusText: 'request timeout'})\n }, timeout)\n xhr.send()\n } catch (err) {\n player.retryData.isFetchReturn = true\n resolveFun(resolve, {status: -2, statusText: 'request error'})\n }\n })\n }\n\n function retryCanPlay () {\n // console.log(`retryCanPlay this.retryData.currentTime:${this.retryData.currentTime}`)\n this.currentTime = this.retryData.currentTime\n this.play()\n this.retryData.retryCode = 0\n this.retryData.isFetchReturn = false\n this.retryData.currentTime = 0\n }\n\n const _originErrorEmit = player._onError\n player._onError = (data) => {\n const errorCount = this.retryData.count\n // console.log(`originErrorEmit:errorCount:${errorCount}`, data)\n if (errorCount > errorConfig.maxCount) {\n if (errorConfig.isFetch) {\n errorfetch(this, this.currentSrc, errorConfig.fetchTimeout).then((data) => {\n this.emit('error', new Errors({\n type: 'network',\n currentTime: this.currentTime,\n duration: this.duration || 0,\n networkState: this.networkState,\n readyState: this.readyState,\n currentSrc: this.currentSrc,\n src: this.src,\n ended: this.ended,\n httpCode: data.status,\n httpMsg: data.statusText,\n errd: {\n line: 101,\n msg: this.error,\n handle: 'plugin errorRetry'\n },\n errorCode: this.video && this.video.error.code,\n mediaError: this.video && this.video.error\n }));\n _originErrorEmit.call(this, data)\n })\n } else {\n _originErrorEmit.call(this, data)\n }\n return;\n }\n if (errorCount === 0) {\n this.retryData.currentTime = this.currentTime\n this.once('canplay', retryCanPlay.bind(this))\n }\n let src = ''\n if (errorConfig.count < 2) {\n src = errorConfig.backupUrl ? errorConfig.backupUrl : player.currentSrc\n } else {\n src = errorConfig.backupUrl && errorCount > 1 ? errorConfig.backupUrl : player.currentSrc\n }\n this.retryData.count++\n this.src = src\n }\n}\n\nexport default {\n name: 'errorretry',\n method: errorRetry\n}","import { on, hasClass, removeClass, addClass } from '../utils/util'\nclass Keyboard {\n constructor (player) {\n this.player = player\n this.state = {\n playbackRate: 0,\n isRepeat: false,\n keyCode: 0,\n repeat: 0,\n isBody: false\n }\n this.timer = null\n this.initEvents()\n }\n\n initEvents () {\n const {root, config} = this.player\n this.player.onBodyKeydown = this.onBodyKeydown.bind(this)\n this.player.onKeydown = this.onKeydown.bind(this)\n this.player.onKeyup = this.onKeyup.bind(this)\n if (!config.keyShortcut || config.keyShortcut === 'on') {\n document.addEventListener('keydown', this.player.onBodyKeydown)\n root.addEventListener('keydown', this.player.onKeydown)\n let destroyFunc = () => {\n document.removeEventListener('keydown', this.player.onBodyKeydown)\n root.removeEventListener('keydown', this.player.onKeydown)\n clearTimeout(this.timer)\n this.timer = null\n }\n on(this.player, 'destroy', destroyFunc)\n }\n }\n\n checkTarget (e) {\n const {player} = this\n return e.target === player.root || e.target === player.video || e.target === player.controls\n }\n\n onBodyKeydown (event) {\n let e = event || window.event\n const keyCode = e.keyCode\n if ((e.target === document.body) && (keyCode === 37 || keyCode === 39 || keyCode === 32)) {\n e.preventDefault()\n e.cancelBubble = true\n e.returnValue = false\n if (!e.repeat) {\n document.addEventListener('keyup', this.player.onKeyup)\n }\n this.handler(e)\n return false\n }\n }\n\n onKeydown (event) {\n let e = event || window.event\n const keyCode = e.keyCode\n if (this.checkTarget(e) && (keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40 || keyCode === 32 || keyCode === 27)) {\n e.preventDefault()\n e.cancelBubble = true\n e.returnValue = false\n this.player.emit('focus')\n if (!e.repeat) {\n this.player.root.addEventListener('keyup', this.player.onKeyup)\n }\n this.handler(e)\n return false\n }\n }\n\n onKeyup () {\n const {state, player} = this\n document.removeEventListener('keyup', this.player.onKeyup)\n player.root.removeEventListener('keyup', this.player.onKeyup)\n if (!state.keyCode) {\n return\n }\n if (state.playbackRate !== 0) {\n player.playbackRate = state.playbackRate\n }\n\n if (!state.isRepeat) {\n this.handlerKeyCode(state.keyCode, false)\n }\n state.playbackRate = 0\n state.isRepeat = false\n state.keyCode = 0\n state.repeat = 0\n this.changeVolumeSlide()\n }\n\n handler (e) {\n const {state, player} = this\n state.keyCode = e.keyCode\n state.isRepeat = e.repeat\n if (e.repeat) {\n if (player.config.disableLongPress) {\n this.handlerKeyCode(state.keyCode, false)\n } else if(state.repeat % 2 === 0) {\n this.handlerKeyCode(state.keyCode, true)\n }\n state.repeat++\n }\n }\n\n handlerKeyCode (keyCode, isLonePress) {\n const {player, state} = this\n switch (keyCode) {\n case 39:\n // 快进\n if (isLonePress) {\n state.repeat === 0 && this.changeRate()\n } else {\n this.seek(false, isLonePress)\n }\n break\n case 37:\n // 快退\n this.seek(true, isLonePress)\n break\n case 38:\n this.changeVolume(true)\n // 上\n break\n case 40:\n this.changeVolume(false)\n // 下\n break\n case 32:\n if (!isLonePress) {\n player.paused ? player.play() : player.pause()\n }\n break\n case 27:\n if (hasClass(player.root, 'xgplayer-is-cssfullscreen')) {\n player.exitCssFullscreen()\n }\n break\n default:\n //\n }\n }\n\n seek (isBack, isLongPress) {\n const {player} = this\n const keyShortcutStep = player.config.keyShortcutStep || {}\n const currentTimeStep = keyShortcutStep.currentTime || 10\n if (player.isLoading || player.isSeeking || (isLongPress && this.state.repeat % 8 > 0)) {\n return\n }\n if (isBack) {\n if (player.currentTime - currentTimeStep >= 0) {\n player.currentTime -= currentTimeStep\n } else {\n player.currentTime = 0\n }\n } else {\n if(player.maxPlayedTime && player.config.allowSeekPlayed && (player.currentTime + currentTimeStep > player.maxPlayedTime)) {\n player.currentTime = player.maxPlayedTime\n } else {\n if (player.currentTime + currentTimeStep <= player.duration) {\n player.currentTime += currentTimeStep\n } else {\n player.currentTime = player.duration + 1\n }\n }\n }\n }\n\n changeRate () {\n this.state.playbackRate = this.player.playbackRate\n this.player.playbackRate = this.player.config.keyboardRate || 5\n }\n\n changeVolumeSlide (show) {\n const {player} = this\n if (!player.controls) {\n return\n }\n if (show) {\n player.emit('focus')\n if (!hasClass(player.root, 'xgplayer-volume-active')) {\n addClass(player.root, 'xgplayer-volume-active')\n }\n } else {\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n removeClass(player.root, 'xgplayer-volume-active')\n }, 1000)\n }\n }\n\n changeVolume (isup) {\n const {player} = this\n const keyShortcutStep = player.config.keyShortcutStep || {}\n const volumeStep = keyShortcutStep.volume || 0.1\n this.changeVolumeSlide(true)\n const volume = player.volume\n if (isup && volume + volumeStep <= 1) {\n player.volume = volume + volumeStep\n } else if (!isup && volume - volumeStep >= 0) {\n player.volume = volume - volumeStep\n }\n }\n}\n\nlet keyboard = function () {\n let player = this\n player.keyboard = new Keyboard(player)\n}\n\nexport default {\n name: 'keyboard',\n method: keyboard\n}","import { hasClass } from '../utils/util'\n\nlet localPreview = function () {\n let player = this\n let root = player.root\n function onUpload (upload) {\n player.uploadFile = upload.files[0]\n let url = URL.createObjectURL(player.uploadFile)\n if (hasClass(root, 'xgplayer-nostart')) {\n player.config.url = url\n player.start()\n } else {\n player.src = url\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n }\n player.on('upload', onUpload)\n\n function onDestroy () {\n player.off('upload', onUpload)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'localPreview',\n method: localPreview\n}","let memoryPlay = function () {\n let player = this\n player.on('memoryPlayStart', (lastPlayTime) => {\n player.currentTime = lastPlayTime\n })\n}\n\nexport default {\n name: 'memoryPlay',\n method: memoryPlay\n}","import { findDom, hasClass, createDom, addClass, removeClass } from '../utils/util'\nimport Draggabilly from 'draggabilly'\n\nlet miniplayer = function () {\n let player = this\n let root = player.root\n function onMiniplayerBtnClick () {\n if (hasClass(root, 'xgplayer-miniplayer-active')) {\n player.exitMiniplayer()\n } else {\n player.getMiniplayer()\n }\n }\n player.on('miniplayerBtnClick', onMiniplayerBtnClick)\n\n function onDestroy () {\n player.off('miniplayerBtnClick', onMiniplayerBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getMiniplayer = function () {\n if (hasClass(root, 'xgplayer-is-fullscreen')) {\n this.exitFullscreen(root)\n }\n if (hasClass(root, 'xgplayer-is-cssfullscreen')) {\n this.exitCssFullscreen()\n }\n if (hasClass(root, 'xgplayer-rotate-fullscreen')) {\n this.exitRotateFullscreen()\n }\n // let ro = this.root.getBoundingClientRect()\n // let Top = ro.top\n // let Left = ro.left\n let dragLay = createDom('xg-miniplayer-lay', '<div></div>', {}, 'xgplayer-miniplayer-lay')\n this.root.appendChild(dragLay)\n let dragHandle = createDom('xg-miniplayer-drag', `<div class=\"drag-handle\"><span>${this.lang.MINIPLAYER_DRAG}</span></div>`, {tabindex: 9}, 'xgplayer-miniplayer-drag')\n this.root.appendChild(dragHandle)\n // eslint-disable-next-line no-unused-vars\n let draggie = new Draggabilly('.xgplayer', {\n handle: '.drag-handle'\n })\n addClass(this.root, 'xgplayer-miniplayer-active')\n this.root.style.right = 0\n this.root.style.bottom = '200px'\n this.root.style.top = ''\n this.root.style.left = ''\n this.root.style.width = '320px'\n this.root.style.height = '180px'\n if (this.config.miniplayerConfig) {\n if (this.config.miniplayerConfig.top !== undefined) {\n this.root.style.top = this.config.miniplayerConfig.top + 'px'\n this.root.style.bottom = ''\n }\n if (this.config.miniplayerConfig.bottom !== undefined) {\n this.root.style.bottom = this.config.miniplayerConfig.bottom + 'px'\n }\n if (this.config.miniplayerConfig.left !== undefined) {\n this.root.style.left = this.config.miniplayerConfig.left + 'px'\n this.root.style.right = ''\n }\n if (this.config.miniplayerConfig.right !== undefined) {\n this.root.style.right = this.config.miniplayerConfig.right + 'px'\n }\n if (this.config.miniplayerConfig.width !== undefined) {\n this.root.style.width = this.config.miniplayerConfig.width + 'px'\n }\n if (this.config.miniplayerConfig.height !== undefined) {\n this.root.style.height = this.config.miniplayerConfig.height + 'px'\n }\n }\n if (this.config.fluid) {\n this.root.style['padding-top'] = ''\n }\n let player = this;\n ['click', 'touchend'].forEach(item => {\n dragLay.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.exitMiniplayer()\n // player.root.style.top = `${Top}px`\n // player.root.style.left = `${Left}px`\n })\n })\n }\n\n player.exitMiniplayer = function () {\n removeClass(this.root, 'xgplayer-miniplayer-active')\n this.root.style.right = ''\n this.root.style.bottom = ''\n this.root.style.top = ''\n this.root.style.left = ''\n if (this.config.fluid) {\n this.root.style['width'] = '100%'\n this.root.style['height'] = '0'\n this.root.style['padding-top'] = `${this.config.height * 100 / this.config.width}%`\n } else {\n if (this.config.width) {\n if (typeof this.config.width !== 'number') {\n this.root.style.width = this.config.width\n } else {\n this.root.style.width = `${this.config.width}px`\n }\n }\n if (this.config.height) {\n if (typeof this.config.height !== 'number') {\n this.root.style.height = this.config.height\n } else {\n this.root.style.height = `${this.config.height}px`\n }\n }\n }\n\n let dragLay = findDom(this.root, '.xgplayer-miniplayer-lay')\n if (dragLay && dragLay.parentNode) {\n dragLay.parentNode.removeChild(dragLay)\n }\n let dragHandle = findDom(this.root, '.xgplayer-miniplayer-drag')\n if (dragHandle && dragHandle.parentNode) {\n dragHandle.parentNode.removeChild(dragHandle)\n }\n }\n}\n\nexport default {\n name: 'miniplayer',\n method: miniplayer\n}","\nimport { PresentationMode, checkWebkitSetPresentationMode } from '../utils/util'\n\nlet pip = function () {\n let player = this\n function onPipBtnClick () {\n if (player.video !== document.pictureInPictureElement) {\n player.video.requestPictureInPicture()\n } else {\n document.exitPictureInPicture()\n }\n }\n player.on('pipBtnClick', onPipBtnClick)\n\n const onWebkitpresentationmodechanged = (e) => {\n const mode = player.video.webkitPresentationMode\n this.pMode = mode\n if (mode === PresentationMode.PIP) {\n // 进入pip模式\n player.emit('requestPictureInPicture', e.pictureInPictureWindow)\n } else if (mode === PresentationMode.INLINE) {\n // 退出pip,进去inline模式\n player.emit('exitPictureInPicture')\n }\n }\n\n player.video.addEventListener('enterpictureinpicture', function (pipWindow) {\n player.emit('requestPictureInPicture', pipWindow)\n })\n\n player.video.addEventListener('leavepictureinpicture', function () {\n player.emit('exitPictureInPicture')\n })\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.addEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n function onDestroy () {\n player.off('pipBtnClick', onPipBtnClick)\n player.off('destroy', onDestroy)\n checkWebkitSetPresentationMode(player.video) &&\n player.video.removeEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'pip',\n method: pip\n}\n","let playNext = function () {\n let player = this\n let nextBtn = player.config.playNext\n player.currentVideoIndex = -1\n\n function onPlayNextBtnClick () {\n if (player.currentVideoIndex + 1 < nextBtn.urlList.length) {\n player.currentVideoIndex++\n player.video.autoplay = true\n player.src = nextBtn.urlList[player.currentVideoIndex]\n player.emit('playerNext', player.currentVideoIndex + 1)\n if (player.currentVideoIndex + 1 === nextBtn.urlList.length) {\n player.emit('urlListEnd')\n }\n }\n }\n player.on('playNextBtnClick', onPlayNextBtnClick)\n\n function onDestroy () {\n player.off('playNextBtnClick', onPlayNextBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'playNext',\n method: playNext\n}","import { removeClass } from '../utils/util'\n\nlet reload = function () {\n let player = this\n let reloadConfig = player.config.reload\n if (!reloadConfig) { return }\n\n function onReloadBtnClick () {\n removeClass(player.root, 'xgplayer-is-error')\n player.src = player.config.url\n }\n player.on('reloadBtnClick', onReloadBtnClick)\n\n function onDestroy () {\n player.off('reloadBtnClick', onReloadBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'reload',\n method: reload\n}","let rotate = function () {\n let player = this\n let rotateConfig = player.config.rotate\n if (!rotateConfig) { return }\n\n function onRotateBtnClick () {\n player.rotate(rotateConfig.clockwise, rotateConfig.innerRotate)\n }\n player.on('rotateBtnClick', onRotateBtnClick)\n\n function onDestroy () {\n player.off('rotateBtnClick', onRotateBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.updateRotateDeg = function () {\n let player = this;\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n\n let width = player.root.offsetWidth\n let height = player.root.offsetHeight\n let targetWidth = player.video.videoWidth\n let targetHeight = player.video.videoHeight\n\n if (!player.config.rotate.innerRotate && player.config.rotate.controlsFix) {\n player.root.style.width = height + 'px'\n player.root.style.height = width + 'px'\n }\n\n let scale\n if (player.rotateDeg === 0.25 || player.rotateDeg === 0.75) {\n if (player.config.rotate.innerRotate) {\n if ((targetWidth / targetHeight) > (height / width)) { // 旋转后纵向撑满\n let videoWidth = 0\n if ((targetHeight / targetWidth) > (height / width)) { // 旋转前是纵向撑满\n videoWidth = height * targetWidth / targetHeight\n } else { // 旋转前是横向撑满\n videoWidth = width\n }\n scale = height / videoWidth\n } else { // 旋转后横向撑满\n let videoHeight = 0\n if ((targetHeight / targetWidth) > (height / width)) { // 旋转前是纵向撑满\n videoHeight = height\n } else { // 旋转前是横向撑满\n videoHeight = width * targetHeight / targetWidth\n }\n scale = width / videoHeight\n }\n } else {\n if (width >= height) {\n scale = width / height\n } else {\n scale = height / width\n }\n }\n scale = Number(scale.toFixed(5))\n } else {\n scale = 1\n }\n\n if (player.config.rotate.innerRotate) {\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n if (player.config.rotate.controlsFix) {\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n player.root.style.transformOrigin = 'center center'\n player.root.style.transform = `rotate(${player.rotateDeg}turn) scale(${1})`\n player.root.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${1})`\n }\n }\n }\n\n player.rotate = function (clockwise = false, innerRotate = true, times = 1) {\n let player = this;\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n let factor = clockwise ? 1 : -1\n\n player.rotateDeg = (player.rotateDeg + 1 + factor * 0.25 * times) % 1\n this.updateRotateDeg()\n\n player.emit('rotate', player.rotateDeg * 360)\n }\n}\n\nexport default {\n name: 'rotate',\n method: rotate\n}","let screenShot = function () {\n let player = this\n let screenShotOptions = player.config.screenShot\n if (!screenShotOptions) {\n return\n }\n\n player.video.setAttribute('crossOrigin', 'anonymous')\n\n let encoderOptions = 0.92\n if(screenShotOptions.quality || screenShotOptions.quality === 0) {\n encoderOptions = screenShotOptions.quality\n }\n let type = screenShotOptions.type === undefined ? 'image/png' : screenShotOptions.type\n let format = screenShotOptions.format === undefined ? '.png' : screenShotOptions.format\n\n let canvas = document.createElement('canvas')\n let canvasCtx = canvas.getContext('2d')\n let img = new Image()\n canvas.width = this.config.width || 600\n canvas.height = this.config.height || 337.5\n\n let saveScreenShot = function (data, filename) {\n let saveLink = document.createElement('a')\n saveLink.href = data\n saveLink.download = filename\n let event = document.createEvent('MouseEvents')\n event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)\n saveLink.dispatchEvent(event)\n }\n\n player.screenShot = function (save = true) {\n save = screenShotOptions.saveImg === undefined ? save : screenShotOptions.saveImg\n canvas.width = player.video.videoWidth || 600\n canvas.height = player.video.videoHeight || 337.5\n img.onload = (function () {\n canvasCtx.drawImage(player.video, 0, 0, canvas.width, canvas.height)\n img.src = canvas.toDataURL(type, encoderOptions).replace(type, 'image/octet-stream')\n let screenShotImg = img.src.replace(/^data:image\\/[^;]+/, 'data:application/octet-stream')\n player.emit('screenShot', screenShotImg)\n save && saveScreenShot(screenShotImg, '截图' + format)\n })()\n }\n player.on('screenShotBtnClick', player.screenShot)\n\n function onDestroy () {\n player.off('screenShotBtnClick', player.screenShot)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'screenShot',\n method: screenShot\n}","import Errors from '../error'\n\nfunction stallCheck () {\n const player = this\n if(!player.config.enableStallCheck) return;\n let lastCurrentTime = 0;\n let stallFlag, stallCheckTimer, progressTimer;\n player.once('complete', () => {\n progressTimer = setInterval(() => {\n if (player.currentTime - (lastCurrentTime || 0) > 0.1 || player.paused) {\n if (stallFlag === 1 || stallFlag === 2) {\n stallFlag = 0;\n clearTimeout(stallCheckTimer);\n stallCheckTimer = null;\n }\n } else {\n if (!stallFlag) {\n stallFlag = 1;\n stallCheckTimer = setTimeout(() => {\n if (stallFlag === 1) {\n stallFlag = 2;\n player.emit('error', new Errors('STALL'));\n }\n stallCheckTimer = null;\n }, 20000);\n }\n }\n lastCurrentTime = player.currentTime;\n }, 1000);\n })\n}\n \nexport default {\n name: 'stallCheck',\n method: stallCheck\n}\n\n\n","import { addClass, removeClass, event } from '../utils/util'\nimport sniffer from '../utils/sniffer'\n\nlet volume = function () {\n let player = this\n let root = player.root\n let container, slider, bar, selected\n function onCanplay () {\n // player.volume = sniffer.device === 'mobile' ? 1 : player.config.volume\n if(!player.controls) return\n player.volume = player.config.volume\n container = player.controls.querySelector('.xgplayer-volume')\n if(!container) return\n slider = container.querySelector('.xgplayer-slider')\n bar = container.querySelector('.xgplayer-bar')\n selected = container.querySelector('.xgplayer-drag')\n if (sniffer.device === 'mobile') {\n if(player.volume === 0) {\n player.video.muted = true\n }\n onVolumeChange()\n }\n }\n player.once('canplay', onCanplay)\n\n function onVolumeBarClick (e) {\n if(!slider) return\n player.video.muted = false\n slider.focus()\n event(e)\n\n let barRect = bar.getBoundingClientRect()\n let pos = {x: e.clientX, y: e.clientY}\n let height = selected.getBoundingClientRect().height\n let isMove = false\n let onMove = function (e) {\n e.preventDefault()\n e.stopPropagation()\n event(e)\n isMove = true\n let w = height - e.clientY + pos.y\n let now = w / barRect.height\n selected.style.height = `${w}px`\n player.volume = Math.max(Math.min(now, 1), 0)\n }\n let onUp = function (e) {\n e.preventDefault()\n e.stopPropagation()\n event(e)\n window.removeEventListener('mousemove', onMove)\n window.removeEventListener('touchmove', onMove)\n window.removeEventListener('mouseup', onUp)\n window.removeEventListener('touchend', onUp)\n\n if (!isMove) {\n let w = barRect.height - (e.clientY - barRect.top)\n let now = w / barRect.height\n selected.style.height = `${w}px`\n if (now <= 0) {\n if (player.volume > 0) {\n selected.volume = player.video.volume\n } else {\n now = selected.volume\n }\n }\n player.volume = Math.max(Math.min(now, 1), 0)\n }\n slider.volume = player.volume\n isMove = false\n }\n window.addEventListener('mousemove', onMove)\n window.addEventListener('touchmove', onMove)\n window.addEventListener('mouseup', onUp)\n window.addEventListener('touchend', onUp)\n return false\n }\n player.on('volumeBarClick', onVolumeBarClick)\n\n function onVolumeIconClick () {\n if (sniffer.device === 'mobile') {\n if (player.video.muted) {\n player.video.muted = false\n player.emit('unmute')\n player.volume = 1\n } else {\n player.video.muted = true\n player.emit('mute')\n player.volume = 0\n }\n } else {\n if(!slider) return\n player.video.muted = false\n if (player.volume < 0.1) {\n if (slider.volume < 0.1) {\n player.volume = 0.6\n } else {\n player.volume = slider.volume\n }\n player.emit('unmute')\n } else {\n player.volume = 0\n player.emit('mute')\n }\n }\n // onVolumeChange ()\n }\n player.on('volumeIconClick', onVolumeIconClick)\n\n function onVolumeIconEnter () {\n addClass(root, 'xgplayer-volume-active')\n if (container) {\n container.focus()\n }\n }\n player.on('volumeIconEnter', onVolumeIconEnter)\n\n function onVolumeIconLeave () {\n removeClass(root, 'xgplayer-volume-active')\n }\n player.on('volumeIconLeave', onVolumeIconLeave)\n\n let _changeTimer = null\n function onVolumeChange () {\n if (_changeTimer) {\n clearTimeout(_changeTimer)\n }\n _changeTimer = setTimeout(() => {\n if (sniffer.device === 'mobile') {\n removeClass(root, 'xgplayer-volume-muted')\n removeClass(root, 'xgplayer-volume-large')\n if (player.video.muted || player.video.defaultMuted) {\n if (!player.video.muted) {\n player.video.muted = true\n }\n player.video.defaultMuted = false\n addClass(root, 'xgplayer-volume-muted')\n } else {\n addClass(root, 'xgplayer-volume-large')\n }\n } else {\n removeClass(root, 'xgplayer-volume-muted')\n removeClass(root, 'xgplayer-volume-small')\n removeClass(root, 'xgplayer-volume-large')\n if (player.volume === 0 || player.muted) {\n addClass(root, 'xgplayer-volume-muted')\n } else if (player.volume < 0.5) {\n addClass(root, 'xgplayer-volume-small')\n } else {\n addClass(root, 'xgplayer-volume-large')\n }\n if (!bar) return\n let containerHeight = bar.getBoundingClientRect().height || 76\n selected.style.height = `${player.volume * containerHeight}px`\n }\n }, 50)\n }\n player.on('volumechange', onVolumeChange)\n\n function onDestroy () {\n player.off('canplay', onCanplay)\n player.off('volumeBarClick', onVolumeBarClick)\n player.off('volumeIconClick', onVolumeIconClick)\n player.off('volumeIconEnter', onVolumeIconEnter)\n player.off('volumeIconLeave', onVolumeIconLeave)\n player.off('volumechange', onVolumeChange)\n player.off('destroy', onDestroy)\n if (_changeTimer) {\n clearTimeout(_changeTimer);\n _changeTimer = null;\n }\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'volume',\n method: volume\n}","import SubTitles from 'xgplayer-subtitles'\nconst defaultStyle = {\n follow: true, // 是否跟随控制栏调整位置\n mode: 'stroke', // 字体显示模式,默认是描边\n followBottom: 50, // 跟随底部控制栏的高度\n fitVideo: true, // 是否跟随视频自动调整字号\n offsetBottom: 2, // 字幕距离画面底部百分比,默认2%\n baseSizeX: 49, // 横屏视频适配基准字号\n baseSizeY: 28, // 竖屏视频适配基准字号\n minSize: 16, // pc端最小字号\n minMobileSize: 13, // 移动端最小字号\n line: 'double', // 最大显示行数 single/double/three\n fontColor: '#fff' // 字体颜色\n}\n\n// function createSubTitle (textTrack, style = {}, defaultOpen = true) {\n// const config = {\n// subTitles: textTrack,\n// defaultOpen: defaultOpen\n// }\n\n// Object.keys(style).map(key => {\n// config[key] = style[key]\n// })\n// return new SubTitles(config)\n// }\n\nclass XgSubtitles {\n constructor (player, list, style) {\n const subtitle = this.create(list, style, player.textTrackShowDefault)\n subtitle.attachPlayer(player)\n this.subtitle = subtitle\n this.player = player\n this.positionData = {\n vBottom: 0,\n marginBottom: 0\n }\n this.isActive = false\n this.followBottom = style.followBottom;\n ['onSubtitleResize', 'onFocus', 'onBlur'].map(item => {\n this[item] = this[item].bind(this)\n })\n\n if (player.controls && style.follow) {\n this.subtitle.on('resize', this.onSubtitleResize)\n player.on('focus', this.onFocus)\n player.on('blur', this.onBlur)\n }\n }\n\n create (textTrack, style = {}, defaultOpen = true) {\n const config = {\n subTitles: textTrack,\n defaultOpen: defaultOpen\n }\n Object.keys(style).map(key => {\n config[key] = style[key]\n })\n return new SubTitles(config)\n }\n\n switch (subtitle) {\n return this.subtitle.switch(subtitle)\n }\n\n switchOff () {\n return this.subtitle.switchOff()\n }\n\n setSubTitles (subtitles, showDefault, isNeedMove) {\n return this.subtitle.setSubTitles(subtitles, showDefault, isNeedMove)\n }\n\n onFocus () {\n const { marginBottom, vBottom } = this.positionData\n if (this.isActive || !marginBottom) {\n return\n }\n this.isActive = true\n let bottom = marginBottom + vBottom\n if (this.followBottom > bottom) {\n bottom = this.followBottom\n }\n this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)\n }\n\n onBlur () {\n this.isActive = false\n const bottom = this.positionData.vBottom + this.positionData.marginBottom\n this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)\n }\n\n onSubtitleResize (data) {\n this.positionData.vBottom = data.vBottom\n this.positionData.marginBottom = data.marginBottom\n }\n\n destroy () {\n this.subtitle.off('resize', this.onSubtitleResize)\n this.player.off('focus', this.onFocus)\n this.player.off('blur', this.onBlur)\n this.subtitle.destroy()\n this.subtitle = null\n }\n}\n\nlet textTrack = function () {\n const player = this\n const { textTrack } = player.config\n if (!textTrack) {\n return\n }\n let textTrackStyle = player.config.textTrackStyle || {}\n Object.keys(defaultStyle).map(key => {\n if (textTrackStyle[key] === undefined) {\n textTrackStyle[key] = defaultStyle[key]\n }\n })\n player.textTrackShowDefault = false\n player.config.textTrack.map((item, index) => {\n if (!item.id && !item.language) {\n item.id = index\n }\n !item.url && (item.url = item.src)\n !item.language && (item.language = item.srclang)\n item.isDefault === undefined && (item.isDefault = item.default)\n !player.textTrackShowDefault && (player.textTrackShowDefault = item.isDefault || item.default)\n })\n\n this.subTitles = new XgSubtitles(player, player.config.textTrack, textTrackStyle)\n\n player.setSubTitles = (textTrack, needRemove = true) => {\n let showDefault = false\n textTrack.map((item, index) => {\n if (!item.id && !item.language) {\n item.id = index\n }\n !item.url && (item.url = item.src)\n !item.language && (item.language = item.srclang)\n item.isDefault === undefined && (item.isDefault = item.default)\n item.isDefault && (showDefault = true)\n })\n player.textTrackShowDefault = showDefault\n this.subTitles.setSubTitles(textTrack, showDefault, needRemove)\n player.emit('subtitle_change', {\n off: false,\n isListUpdate: true,\n list: textTrack\n })\n }\n\n player.switchSubTitle = (subtitle = { id: '', language: '' }) => {\n this.subTitles.switch(subtitle).then(data => {\n if (data.code === 0) {\n subtitle.off = false\n subtitle.isListUpdate = false\n subtitle.list = []\n player.emit('subtitle_change', subtitle)\n }\n })\n }\n\n player.switchOffSubtile = () => {\n this.subTitles.switchOff()\n player.emit('subtitle_change', {\n off: true,\n isListUpdate: false,\n list: []\n })\n }\n\n function onDestroy () {\n this.subTitles.destroy()\n this.subTitles = null\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'textTrack',\n method: textTrack\n}\n","import { createDom } from '../../utils/util'\nimport '../style/controls/enter.scss'\n\nlet s_enter = function () {\n let player = this\n let root = player.root\n\n let barStr = ''\n for(let i = 1; i <= 12; i++) {\n barStr += `<div class=\"xgplayer-enter-bar${i}\"></div>`\n }\n let enter = createDom('xg-enter', `<div class=\"xgplayer-enter-spinner\">\n ${barStr}\n </div>`, {}, 'xgplayer-enter');\n root.appendChild(enter)\n}\n\nexport default {\n name: 's_enter',\n method: s_enter\n}","import { createDom } from '../../utils/util'\nimport RequestCssFullIcon from '../assets/requestCssFull.svg'\nimport ExitCssFullIcon from '../assets/exitCssFull.svg'\nimport '../style/controls/cssfullscreen.scss'\n\nlet s_cssFullscreen = function () {\n let player = this\n if (!player.config.cssFullscreen) { return }\n let btn = createDom('xg-cssfullscreen', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-requestfull\">${RequestCssFullIcon}</div>\n <div class=\"xgplayer-icon-exitfull\">${ExitCssFullIcon}</div>\n </xg-icon>`, {}, 'xgplayer-cssfullscreen')\n\n let tipsText = {}\n tipsText.requestfull = player.lang.CSSFULLSCREEN_TIPS\n tipsText.exitfull = player.lang.EXITCSSFULLSCREEN_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-requestfull\">${tipsText.requestfull}</span>\n <span class=\"xgplayer-tip-exitfull\">${tipsText.exitfull}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('cssFullscreenBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_cssFullscreen',\n method: s_cssFullscreen\n}","import { createDom } from '../../utils/util'\nimport MutedIcon from '../assets/volumeMuted.svg'\nimport SmallIcon from '../assets/volumeSmall.svg'\nimport LargeIcon from '../assets/volumeLarge.svg'\nimport '../style/controls/volume.scss'\n\nlet s_volume = function () {\n let player = this\n let container = createDom('xg-volume', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-large\">${LargeIcon}</div>\n <div class=\"xgplayer-icon-small\">${SmallIcon}</div>\n <div class=\"xgplayer-icon-muted\">${MutedIcon}</div>\n </xg-icon>\n <xg-slider class=\"xgplayer-slider\" tabindex=\"2\">\n <xg-bar class=\"xgplayer-bar\">\n <xg-drag class=\"xgplayer-drag\"></xg-drag>\n </xg-bar>\n </xg-slider>`, {}, 'xgplayer-volume')\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(container)\n }\n })\n let slider = container.querySelector('.xgplayer-slider')\n let bar = container.querySelector('.xgplayer-bar')\n let selected = container.querySelector('.xgplayer-drag')\n let icon = container.querySelector('.xgplayer-icon')\n selected.style.height = `${player.config.volume * 100}%`\n slider.volume = player.config.volume;\n\n bar.addEventListener('mousedown', e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeBarClick', e)\n });\n\n ['click', 'touchend'].forEach(item => {\n icon.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconClick')\n })\n })\n\n icon.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconEnter')\n });\n\n ['blur', 'mouseleave'].forEach(item => {\n container.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconLeave')\n })\n })\n}\n\nexport default {\n name: 's_volume',\n method: s_volume\n}","import { createDom, addClass, removeClass, hasClass, toggleClass } from '../../utils/util'\nimport sniffer from '../../utils/sniffer'\nimport '../style/controls/definition.scss'\n\nlet s_definition = function () {\n let player = this\n let root = player.root\n let paused\n let container = createDom('xg-definition', '', {tabindex: 3}, 'xgplayer-definition')\n if (sniffer.device === 'mobile') {\n player.config.definitionActive = 'click'\n }\n\n function onCanplayResourceReady () {\n let list = player.definitionList\n let tmp = ['<ul>'], src = player.config.url, a = document.createElement('a')\n if (player.switchURL) {\n ['mp4', 'hls', '__flv__', 'dash'].every(item => {\n if (player[item]) {\n if(player[item].url) {\n a.href = player[item].url\n }\n if(item === '__flv__') {\n if(player[item]._options) {\n a.href = player[item]._options.url\n } else {\n a.href = player[item]._mediaDataSource.url\n }\n }\n if(item === 'hls') {\n a.href = player[item].originUrl || player[item].url\n src = a.href\n }\n src = a.href\n return false\n } else {\n return true\n }\n })\n } else {\n src = player.currentSrc || player.src\n }\n list.forEach(item => {\n a.href = item.url\n if (player.dash) {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${item.selected ? 'selected' : ''}'>${item.name}</li>`)\n } else {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${a.href === src ? 'selected' : ''}'>${item.name}</li>`)\n }\n })\n let cursrc = list.filter(item => {\n a.href = item.url\n if (player.dash) {\n return item.selected === true\n } else {\n return a.href === src\n }\n })\n tmp.push(`</ul><p class='name'>${(cursrc[0] || {name: ''}).name}</p>`)\n let urlInRoot = root.querySelector('.xgplayer-definition')\n if (urlInRoot) {\n urlInRoot.innerHTML = tmp.join('')\n let cur = urlInRoot.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-definition-active')\n urlInRoot.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-definition-active')\n container.focus()\n })\n }\n player.controls.appendChild(container)\n }\n }\n function onResourceReady (list) {\n player.definitionList = list\n if (list && list instanceof Array && list.length > 0) {\n addClass(root, 'xgplayer-is-definition')\n player.once('canplay', onCanplayResourceReady)\n }\n }\n player.on('resourceReady', onResourceReady)\n\n function onPlayingChangeDefinition () {\n player.currentTime = player.curTime\n if (paused) {\n player.pause()\n } else {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n };\n function onTimeupdateChangeDefinition () {\n player.once('timeupdate', onPlayingChangeDefinition)\n };\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let list = player.definitionList\n let li = e.target || e.srcElement, a = document.createElement('a')\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n let from, to\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if(hasClass(item, 'selected')) {\n from = item.getAttribute('cname')\n removeClass(item, 'selected')\n player.emit('beforeDefinitionChange', item.getAttribute('url'))\n }\n })\n if (player.dash) {\n list.forEach(item => {\n item.selected = false\n if (item.name === li.innerHTML) {\n item.selected = true\n }\n })\n }\n\n addClass(li, 'selected')\n to = li.getAttribute('cname')\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}`\n a.href = li.getAttribute('url')\n paused = player.paused\n if (player.switchURL) {\n let curRUL = document.createElement('a');\n ['mp4', 'hls', '__flv__', 'dash'].every(item => {\n if (player[item]) {\n if(player[item].url) {\n curRUL.href = player[item].url\n }\n if(item === '__flv__') {\n if(player[item]._options) {\n curRUL.href = player[item]._options.url\n } else {\n curRUL.href = player[item]._mediaDataSource.url\n }\n }\n if(item === 'hls') {\n curRUL.href = player[item].originUrl || player[item].url\n }\n return false\n } else {\n return true\n }\n })\n if (curRUL.href !== a.href && !player.ended) {\n player.switchURL(a.href)\n }\n } else {\n if (player['hls']) {\n let curRUL = document.createElement('a')\n curRUL = player['hls'].url\n }\n if (a.href !== player.currentSrc) {\n player.curTime = player.currentTime\n if (!player.ended) {\n player.src = a.href\n }\n }\n }\n if(navigator.userAgent.toLowerCase().indexOf('android') > -1) {\n player.once('timeupdate', onTimeupdateChangeDefinition)\n } else {\n player.once('loadedmetadata', onPlayingChangeDefinition)\n }\n player.emit('definitionChange', {from, to})\n if (sniffer.device === 'mobile') {\n removeClass(player.root, 'xgplayer-definition-active')\n }\n } else if (player.config.definitionActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n if(sniffer.device === 'mobile') {\n toggleClass(player.root, 'xgplayer-definition-active')\n } else {\n addClass(player.root, 'xgplayer-definition-active')\n }\n container.focus()\n }\n player.emit('focus')\n }, false)\n })\n\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(root, 'xgplayer-definition-active')\n })\n\n function onBlur () {\n removeClass(root, 'xgplayer-definition-active')\n }\n player.on('blur', onBlur)\n\n function onDestroy () {\n player.off('resourceReady', onResourceReady)\n player.off('canplay', onCanplayResourceReady)\n if(navigator.userAgent.toLowerCase().indexOf('android') > -1) {\n player.off('timeupdate', onTimeupdateChangeDefinition)\n player.off('timeupdate', onPlayingChangeDefinition)\n } else {\n player.off('loadedmetadata', onPlayingChangeDefinition)\n }\n player.off('blur', onBlur)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getCurrentDefinition = function () {\n let liList = player.controls.querySelectorAll('.xgplayer-definition ul li')\n for(let i = 0; i < liList.length; i++) {\n if(liList[i].className && liList[i].className.indexOf('selected') > -1) {\n return {\n name: liList[i].getAttribute('cname'),\n url: liList[i].getAttribute('url')\n }\n }\n }\n return {\n name: liList[0].getAttribute('cname'),\n url: liList[0].getAttribute('url')\n }\n }\n\n player.switchDefinition = function (definitionObj = {}) {\n let liList = player.controls.querySelectorAll('.xgplayer-definition ul li')\n for(let i = 0; i < liList.length; i++) {\n if(liList[i].getAttribute('cname') === definitionObj.name || liList[i].getAttribute('url') === definitionObj.url || i === definitionObj.index) {\n liList[i].click()\n }\n }\n }\n}\n\nexport default {\n name: 's_definition',\n method: s_definition\n}","import { createDom, addClass, removeClass, hasClass, toggleClass } from '../../utils/util'\nimport sniffer from '../../utils/sniffer'\nimport '../style/controls/playbackRate.scss'\n\nlet s_playbackRate = function () {\n let player = this\n let playbackRateList = []\n if (player.config.playbackRate) {\n playbackRateList = [].concat(player.config.playbackRate)\n playbackRateList.sort((a, b) => b - a)\n } else {\n return false\n }\n let unit = player.config.playbackRateUnit !== undefined ? player.config.playbackRateUnit : 'x'\n let container = createDom('xg-playbackrate', \" \", {}, 'xgplayer-playbackrate')\n if (sniffer.device === 'mobile') {\n player.config.playbackRateActive = 'click'\n }\n\n let list = []\n playbackRateList.forEach(item => {\n list.push({name: `${item}`, rate: `${item}${unit}`, selected: false})\n })\n let selectedSpeed = 1\n let tmp = ['<ul>']\n list.forEach(item => {\n if(player.config.defaultPlaybackRate && player.config.defaultPlaybackRate.toString() === item.name) {\n item.selected = true\n selectedSpeed = player.config.defaultPlaybackRate\n player.once('playing', () => { player.video.playbackRate = player.config.defaultPlaybackRate})\n } else if (item.name === '1.0' || item.name === '1') {\n if(!player.config.defaultPlaybackRate || player.config.defaultPlaybackRate === 1) {\n item.selected = true\n }\n }\n tmp.push(`<li cname='${item.name}' class='${item.selected ? 'selected' : ''}'>${item.rate}</li>`)\n })\n tmp.push(`</ul><p class='name'>${selectedSpeed}${unit}</p>`)\n let playbackDom = player.root.querySelector('.xgplayer-playbackrate')\n if (playbackDom) {\n playbackDom.innerHTML = tmp.join('')\n let cur = playbackDom.querySelector('.name')\n if (!player.config.playbackRateActive || player.config.playbackRateActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-playbackrate-active')\n playbackDom.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.playbackRateActive || player.config.playbackRateActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-playbackrate-active')\n container.focus()\n })\n }\n player.once('ready', () => {\n player.controls.appendChild(container)\n })\n }\n\n let ev = ['touchend', 'click']\n ev.forEach(item => {\n container.addEventListener(item, e => {\n e.stopPropagation()\n e.preventDefault()\n let li = e.target\n if(li && li.tagName.toLocaleLowerCase() === 'li') {\n let from, to\n list.forEach(item => {\n item.selected = false\n if (li.textContent.replace(/\\s+/g,\"\") === item.rate) {\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if(hasClass(item, 'selected')) {\n from = Number(item.getAttribute('cname'))\n removeClass(item, 'selected')\n }\n })\n item.selected = true\n player.video.playbackRate = item.name * 1\n selectedSpeed = item.name * 1\n }\n })\n addClass(li, 'selected')\n to = Number(li.getAttribute('cname'))\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}${unit}`\n player.emit('playbackrateChange', {from, to})\n if (sniffer.device === 'mobile') {\n removeClass(player.root, 'xgplayer-playbackrate-active')\n }\n } else if (player.config.playbackRateActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'span')) {\n if(sniffer.device === 'mobile') {\n toggleClass(player.root, 'xgplayer-playbackrate-active')\n } else {\n addClass(player.root, 'xgplayer-playbackrate-active')\n }\n container.focus()\n }\n player.emit('focus')\n }, false)\n })\n container.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(player.root, 'xgplayer-playbackrate-active')\n })\n\n function onBlur () {\n removeClass(player.root, 'xgplayer-playbackrate-active')\n }\n player.on('blur', onBlur)\n\n player.on('play', () => {\n if(player.video.playbackRate.toFixed(1) !== selectedSpeed.toFixed(1) ) {\n player.video.playbackRate = selectedSpeed\n }\n })\n\n player.switchPlaybackRate = function (playbackRateObj = {}) {\n let liList = player.controls.querySelectorAll('.xgplayer-playbackrate ul li')\n for(let i = 0; i < liList.length; i++) {\n if(!hasClass(liList[i], 'selected') && (liList[i].getAttribute('cname') === `${playbackRateObj.playbackRate}` || i === playbackRateObj.index)) {\n liList[i].click()\n }\n }\n }\n\n player.on('ratechange', () => {\n player.switchPlaybackRate({ playbackRate: player.playbackRate })\n })\n}\n\nexport default {\n name: 's_playbackRate',\n method: s_playbackRate\n}","import { createDom } from '../../utils/util'\n\nlet s_localPreview = function () {\n let player = this\n if (player.config.preview && player.config.preview.uploadEl) {\n let preview = createDom('xg-preview', '<input type=\"file\">', {}, 'xgplayer-preview')\n let upload = preview.querySelector('input')\n player.config.preview.uploadEl.appendChild(preview)\n upload.onchange = function () {\n player.emit('upload', upload)\n }\n }\n}\n\nexport default {\n name: 's_localPreview',\n method: s_localPreview\n}","import { createDom } from '../../utils/util'\nimport DownloadIcon from '../assets/download.svg'\nimport '../style/controls/download.scss'\n\nlet s_download = function () {\n let player = this\n if (!player.config.download) { return }\n let btn = createDom('xg-download', `<xg-icon class=\"xgplayer-icon\">${DownloadIcon}</xg-icon>`, {}, 'xgplayer-download')\n\n let tipsText = player.lang.DOWNLOAD_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-download\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('downloadBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_download',\n method: s_download\n}","import { createDom, deepCopy, addClass, removeClass } from '../../utils/util'\nimport DanmuJs from 'danmu.js'\nimport PanelIcon from '../assets/panel.svg'\nimport '../style/controls/danmu.scss'\n\nlet s_danmu = function () {\n let player = this\n let root = player.root\n if(!player.config.danmu) { return }\n let container = createDom('xg-danmu', '', {}, 'xgplayer-danmu')\n player.once('ready', () => {\n root.appendChild(container)\n })\n let config = deepCopy({\n container,\n player: player.video,\n comments: [],\n area: {\n start: 0,\n end: 1\n }\n }, player.config.danmu)\n let panelBtn\n if (player.config.danmu.panel) {\n panelBtn = createDom('xg-panel', `<xg-panel-icon class=\"xgplayer-panel-icon\">\n ${PanelIcon}\n </xg-panel-icon>\n <xg-panel-slider class=\"xgplayer-panel-slider\">\n <xg-hidemode class=\"xgplayer-hidemode\">\n <p class=\"xgplayer-hidemode-font\">屏蔽类型</p>\n <ul class=\"xgplayer-hidemode-radio\">\n <li class=\"xgplayer-hidemode-scroll\" id=\"false\">滚动</li><li class=\"xgplayer-hidemode-top\" id=\"false\">顶部</li><li class=\"xgplayer-hidemode-bottom\" id=\"false\">底部</li><li class=\"xgplayer-hidemode-color\" id=\"false\">色彩</li>\n </ul>\n </xg-hidemode>\n <xg-transparency class=\"xgplayer-transparency\">\n <span>不透明度</span>\n <input class=\"xgplayer-transparency-line xgplayer-transparency-color xgplayer-transparency-bar xgplayer-transparency-gradient\" type=\"range\" min=\"0\" max=\"100\" step=\"0.1\" value=\"50\"></input>\n </xg-transparency>\n <xg-showarea class=\"xgplayer-showarea\">\n <div class=\"xgplayer-showarea-name\">显示区域</div>\n <div class=\"xgplayer-showarea-control\">\n <div class=\"xgplayer-showarea-control-up\">\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-onequarters\">1/4</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-twoquarters selected-color\">1/2</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-threequarters\">3/4</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-full\">1</span>\n </div>\n <div class=\"xgplayer-showarea-control-down\">\n <div class=\"xgplayer-showarea-control-down-dots\">\n <span class=\"xgplayer-showarea-onequarters-dot\"></span>\n <span class=\"xgplayer-showarea-twoquarters-dot\"></span>\n <span class=\"xgplayer-showarea-threequarters-dot\"></span>\n <span class=\"xgplayer-showarea-full-dot\"></span>\n </div>\n <input class=\"xgplayer-showarea-line xgplayer-showarea-color xgplayer-showarea-bar xgplayer-gradient\" type=\"range\" min=\"1\" max=\"4\" step=\"1\" value=\"1\">\n </div>\n </div>\n </xg-showarea>\n <xg-danmuspeed class=\"xgplayer-danmuspeed\">\n <div class=\"xgplayer-danmuspeed-name\">弹幕速度</div>\n <div class=\"xgplayer-danmuspeed-control\">\n <div class=\"xgplayer-danmuspeed-control-up\">\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-small\">慢</span>\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-middle selected-color\">中</span>\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-large\">快</span>\n </div>\n <div class=\"xgplayer-danmuspeed-control-down\">\n <div class=\"xgplayer-danmuspeed-control-down-dots\">\n <span class=\"xgplayer-danmuspeed-small-dot\"></span>\n <span class=\"xgplayer-danmuspeed-middle-dot\"></span>\n <span class=\"xgplayer-danmuspeed-large-dot\"></span>\n </div>\n <input class=\"xgplayer-danmuspeed-line xgplayer-danmuspeed-color xgplayer-danmuspeed-bar xgplayer-gradient\" type=\"range\" min=\"50\" max=\"150\" step=\"50\" value=\"100\">\n </div>\n </div>\n </xg-danmuspeed>\n <xg-danmufont class=\"xgplayer-danmufont\">\n <div class=\"xgplayer-danmufont-name\">字体大小</div>\n <div class=\"xgplayer-danmufont-control\">\n <div class=\"xgplayer-danmufont-control-up\">\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-small\">小</span>\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-middle\">中</span>\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-large selected-color\">大</span>\n </div>\n <div class=\"xgplayer-danmufont-control-down\">\n <div class=\"xgplayer-danmufont-control-down-dots\">\n <span class=\"xgplayer-danmufont-small-dot\"></span>\n <span class=\"xgplayer-danmufont-middle-dot\"></span>\n <span class=\"xgplayer-danmufont-large-dot\"></span>\n </div>\n <input class=\"xgplayer-danmufont-line xgplayer-danmufont-color xgplayer-danmufont-bar xgplayer-gradient\" type=\"range\" min=\"20\" max=\"30\" step=\"5\" value=\"25\">\n </div>\n </div>\n </xg-danmufont>\n </xg-panel-slider>`, {tabindex: 7}, 'xgplayer-panel')\n player.once('ready', () => {\n player.controls.appendChild(panelBtn)\n })\n }\n player.once('complete', () => {\n let danmujs = new DanmuJs(config)\n player.emit('initDefaultDanmu', danmujs)\n player.danmu = danmujs\n\n if (!player.config.danmu.panel) {\n return\n }\n\n let slider = panelBtn.querySelector('.xgplayer-panel-slider')\n let focusStatus\n let focusarray = ['mouseenter', 'touchend', 'click']\n focusarray.forEach(item => {\n panelBtn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n addClass(slider, 'xgplayer-panel-active')\n panelBtn.focus()\n focusStatus = true\n })\n })\n panelBtn.addEventListener('mouseleave', function (e) {\n e.preventDefault()\n e.stopPropagation()\n removeClass(slider, 'xgplayer-panel-active')\n focusStatus = false\n })\n slider.addEventListener('mouseleave', function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (focusStatus === false) {\n removeClass(slider, 'xgplayer-panel-active')\n }\n })\n\n let danmuConfig = player.config.danmu\n let hidemodeScroll = panelBtn.querySelector('.xgplayer-hidemode-scroll')\n let hidemodeTop = panelBtn.querySelector('.xgplayer-hidemode-top')\n let hidemodeBottom = panelBtn.querySelector('.xgplayer-hidemode-bottom')\n let hidemodeColor = panelBtn.querySelector('.xgplayer-hidemode-color')\n let hidemodeArray = {\n 'scroll': hidemodeScroll,\n 'top': hidemodeTop,\n 'bottom': hidemodeBottom,\n 'color': hidemodeColor\n }\n for (let key in hidemodeArray) {\n let keys = key\n let ev = ['touchend', 'click']\n ev.forEach(item => {\n hidemodeArray[keys].addEventListener(item, function (e) {\n if (hidemodeArray[keys].getAttribute('id') !== 'true') {\n hidemodeArray[keys].style.color = '#f85959'\n hidemodeArray[keys].setAttribute('id', 'true')\n player.danmu.hide(keys)\n } else {\n hidemodeArray[keys].style.color = '#aaa'\n hidemodeArray[keys].setAttribute('id', 'false')\n player.danmu.show(keys)\n }\n })\n })\n }\n let transparency = panelBtn.querySelector('.xgplayer-transparency-line')\n let transparencyGradient = panelBtn.querySelector('.xgplayer-transparency-gradient')\n let transparencyValue = 50\n transparencyGradient.style.background = 'linear-gradient(to right, #f85959 0%, #f85959 ' + transparencyValue + '%, #aaa ' + transparencyValue + '%, #aaa)'\n transparency.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n transparencyValue = e.target.value\n transparencyGradient.style.background = 'linear-gradient(to right, #f85959 0%, #f85959 ' + transparencyValue + '%, #aaa ' + transparencyValue + '%, #aaa)'\n danmuConfig.comments.forEach(item => {\n item.style.opacity = transparencyValue / 100\n })\n })\n let showarea = panelBtn.querySelector('.xgplayer-showarea-line')\n showarea.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let showareaValue = e.target.value\n player.danmu.config.area.end = showareaValue / 100\n player.config.danmu.area.end = showareaValue / 100\n player.danmu.bulletBtn.main.channel.resize()\n })\n let danmuspeed = panelBtn.querySelector('.xgplayer-danmuspeed-line')\n danmuspeed.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let danmuspeedValue = e.target.value\n danmuConfig.comments.forEach(item => {\n item.duration = (200 - danmuspeedValue) * 100\n })\n })\n let danmufont = panelBtn.querySelector('.xgplayer-danmufont-line')\n danmufont.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let danmufontValue = e.target.value\n danmuConfig.comments.forEach(item => {\n item.style.fontSize = danmufontValue + 'px'\n })\n })\n if(navigator.userAgent.indexOf(\"Firefox\") > -1) {\n for (let i = 0; i < slider.querySelectorAll('input').length; i++) {\n slider.querySelectorAll('input')[i].style.marginTop = '10px'\n }\n }\n })\n}\n\nexport default {\n name: 's_danmu',\n method: s_danmu\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/pip.scss'\n\nlet s_pip = function () {\n let player = this\n if (!player.config.pip || typeof player.video.requestPictureInPicture !== 'function') { return }\n let pip = player.lang.PIP\n let btn = createDom('xg-pip', `<p class=\"name\"><span>${pip}</span></p>`, {tabindex: 9}, 'xgplayer-pip')\n\n player.once('ready', () => {\n player.controls.appendChild(btn);\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('pipBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_pip',\n method: s_pip\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/miniplayer.scss'\n\nlet s_miniplayer = function () {\n let player = this\n if (!player.config.miniplayer) { return }\n let miniplayer = player.lang.MINIPLAYER\n let btn = createDom('xg-miniplayer', `<p class=\"name\"><span>${miniplayer}</span></p>`, {tabindex: 9}, 'xgplayer-miniplayer')\n\n player.once('ready', () => {\n player.controls.appendChild(btn);\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('miniplayerBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_miniplayer',\n method: s_miniplayer\n}","import { createDom, addClass } from '../../utils/util'\nimport PlayNextIcon from '../assets/playNext.svg'\nimport '../style/controls/playNext.scss'\n\nlet s_playNext = function () {\n let player = this\n let nextBtn = player.config.playNext\n if (!nextBtn || !nextBtn.urlList) { return }\n let btn = createDom('xg-playnext', `<xg-icon class=\"xgplayer-icon\">${PlayNextIcon}</xg-icon>`, {}, 'xgplayer-playnext')\n let tipsText = player.lang.PLAYNEXT_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-playnext\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-is-enter')\n player.userGestureTrigEvent('playNextBtnClick')\n })\n })\n\n let onUrlListEnd = function () {\n addClass(player.root, 'xgplayer-playnext-inactive')\n }\n player.on('urlListEnd', onUrlListEnd)\n\n function onDestroy () {\n player.off('urlListEnd', onUrlListEnd)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_playNext',\n method: s_playNext\n}","import { createDom } from '../../utils/util'\nimport RotateIcon from '../assets/rotate.svg'\nimport '../style/controls/rotate.scss'\n\nlet s_rotate = function () {\n let player = this\n if (!player.config.rotate) { return }\n let btn = createDom('xg-rotate', `<xg-icon class=\"xgplayer-icon\">${RotateIcon}</xg-icon>`, {}, 'xgplayer-rotate')\n\n let tipsText = player.lang.ROTATE_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-rotate\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('rotateBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_rotate',\n method: s_rotate\n}","import { createDom } from '../../utils/util'\nimport ReloadIcon from '../assets/reload.svg'\nimport '../style/controls/reload.scss'\n\nlet s_reload = function () {\n let player = this\n if (!player.config.reload) { return }\n let btn = createDom('xg-reload', `<xg-icon class=\"xgplayer-icon\">${ReloadIcon}</xg-icon>`, {}, 'xgplayer-reload')\n\n let tipsText = player.lang.RELOAD_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-reload\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('reloadBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_reload',\n method: s_reload\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/screenShot.scss'\n\nlet s_screenShot = function () {\n let player = this\n if (!player.config.screenShot || player.config.screenShot.hideButton) {\n return\n }\n let screenShotText = player.lang.SCREENSHOT\n let btn = createDom('xg-screenshot', `<p class=\"name\"><span>${player.config.screenShot.iconText || screenShotText}</span></p>`, {tabindex: 11}, 'xgplayer-screenshot')\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('screenShotBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_screenShot',\n method: s_screenShot\n}","import Player from '../../player'\nimport '../style/controls/textTrack.scss'\n\nlet s_nativeTextTrack = function () {\n if (!this.config.nativeTextTrack) {\n return\n }\n let player = this\n let root = player.root\n let util = Player.util\n let container = util.createDom('xg-texttrack', '', {tabindex: 7}, 'xgplayer-texttrack')\n let list = player.config.nativeTextTrack\n if (list && Array.isArray(list) && list.length > 0) {\n util.addClass(player.root, 'xgplayer-is-texttrack')\n player.once('canplay', function () {\n let tmp = ['<ul>']\n tmp.push(`<li class='${this.textTrackShowDefault ? '' : 'selected'}'}'>${player.lang.OFF}</li>`)\n list.forEach(item => {\n tmp.push(`<li class='${item.default && this.textTrackShowDefault ? 'selected' : ''}'>${item.label}</li>`)\n })\n let controlText = player.lang.TEXTTRACK\n tmp.push(`</ul><p class=\"name\">${controlText}</p>`)\n\n let urlInRoot = root.querySelector('.xgplayer-texttrack')\n if (urlInRoot) {\n urlInRoot.innerHTML = tmp.join('')\n let cur = urlInRoot.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(root, 'xgplayer-texttrack-active')\n urlInRoot.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n })\n }\n player.controls.appendChild(container)\n }\n })\n };\n\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let li = e.target || e.srcElement\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n util.removeClass(item, 'selected')\n })\n util.addClass(li, 'selected')\n let trackDoms = player.root.getElementsByTagName('Track')\n if (li.innerHTML === player.lang.OFF) {\n trackDoms[0].track.mode = 'hidden'\n trackDoms[0].src = ''\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n trackDoms[0].style.display = 'block'\n util.addClass(player.root, 'xgplayer-texttrack-active')\n trackDoms[0].track.mode = 'showing'\n\n list.some(item => {\n if (item.label === li.innerHTML) {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n return true\n }\n })\n player.emit('textTrackChange', li.innerHTML)\n }\n } else if (player.config.textTrackActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n util.addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n }\n }, false)\n })\n\n player.on('play', () => {\n let ul = root.querySelector('.xgplayer-texttrack ul')\n let trackDoms = root.getElementsByTagName('Track')\n if (!player['hls'] || !ul || !trackDoms) return\n trackDoms[0].src = ''\n Array.prototype.forEach.call(ul.childNodes, li => {\n if (util.hasClass(li, 'selected')) {\n if (li.innerHTML === player.lang.OFF) {\n trackDoms[0].track.mode = 'hidden'\n trackDoms[0].src = ''\n } else {\n trackDoms[0].track.mode = 'hidden'\n\n list.some(item => {\n if (item.label !== li.innerHTML) {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n return true\n }\n })\n\n list.some(item => {\n if (item.label === li.innerHTML) {\n setTimeout(() => {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n trackDoms[0].track.mode = 'showing'\n })\n return true\n }\n })\n }\n }\n })\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n })\n\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n })\n}\n\nexport default {\n name: 's_nativeTextTrack',\n method: s_nativeTextTrack\n}\n","import { createDom, addClass, removeClass, hasClass } from '../../utils/util'\nimport '../style/controls/textTrack.scss'\n\nfunction renderList (root, textTrack, offText, isDefaultShow) {\n if (textTrack.length === 0) {\n root.innerHTML = ''\n return\n }\n let tmp = []\n tmp.push(`<li data-type=\"off\" class=\"${isDefaultShow ? '' : 'selected'}\">${offText}</li>`)\n textTrack.forEach(item => {\n tmp.push(`<li data-id=${item.id} data-language=${item.language} class=\"${item.isDefault && isDefaultShow ? 'selected' : ''}\">${item.label}</li>`)\n })\n root.innerHTML = tmp.join('')\n}\n\n// eslint-disable-next-line camelcase\nlet s_textTrack = function () {\n let player = this\n if (!this.config.textTrack) {\n return\n }\n let textTrack = this.config.textTrack\n let controlText = player.lang.TEXTTRACK\n const container = createDom('xg-texttrack', `<ul></ul><p class=\"name\">${controlText}</p>`, {tabindex: 7}, 'xgplayer-texttrack')\n\n function onCanPlay () {\n const urlInRoot = player.root.querySelector('.xgplayer-texttrack')\n if (!urlInRoot) {\n player.controls.appendChild(container)\n const cur = container.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n })\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(player.root, 'xgplayer-texttrack-active')\n })\n } else {\n cur.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n if (hasClass(player.root, 'xgplayer-texttrack-active')) {\n removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n addClass(player.root, 'xgplayer-texttrack-active')\n }\n })\n }\n }\n\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let li = e.target || e.srcElement\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n const id = li.getAttribute('data-id')\n const type = li.getAttribute('data-type')\n const language = li.getAttribute('data-language')\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n removeClass(item, 'selected')\n })\n addClass(li, 'selected')\n if (type === 'off') {\n player.switchOffSubtile()\n removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n player.switchSubTitle({id, language})\n addClass(player.root, 'xgplayer-texttrack-active')\n }\n }\n })\n })\n\n const ul = container.getElementsByTagName('ul')[0]\n renderList(ul, textTrack, player.lang.OFF, player.textTrackShowDefault)\n if (textTrack.length === 0) {\n addClass(container, 'xgplayer-texttrack-hide')\n } else {\n removeClass(container, 'xgplayer-texttrack-hide')\n }\n }\n\n const onListUpdate = function (data) {\n if (!data.isListUpdate) return\n const ul = container.getElementsByTagName('ul')[0]\n textTrack = data.list\n renderList(ul, data.list, player.lang.OFF, player.textTrackShowDefault)\n data.list.length > 0 ? addClass(player.root, 'xgplayer-is-texttrack') : removeClass(player.root, 'xgplayer-is-texttrack')\n if (data.list.length === 0) {\n addClass(container, 'xgplayer-texttrack-hide')\n } else {\n removeClass(container, 'xgplayer-texttrack-hide')\n }\n }\n\n if (textTrack && Array.isArray(textTrack)) {\n textTrack.length > 0 && addClass(player.root, 'xgplayer-is-texttrack')\n player.once('canplay', onCanPlay)\n player.on('subtitle_change', onListUpdate)\n }\n}\n\nexport default {\n name: 's_textTrack',\n method: s_textTrack\n}\n","import { addClass, removeClass, createDom } from '../../utils/util'\nimport '../style/controls/error.scss'\n\nlet s_error = function () {\n let player = this\n let root = player.root\n\n let error = createDom('xg-error', '<span class=\"xgplayer-error-text\">请<span class=\"xgplayer-error-refresh\">刷新</span>试试</span>', {}, 'xgplayer-error')\n player.once('ready', () => {\n root.appendChild(error)\n });\n\n let text = error.querySelector('.xgplayer-error-text')\n if (player.config.lang && player.config.lang === 'zh-cn') {\n text.innerHTML = player.config.errorTips || `请<span class=\"xgplayer-error-refresh\">刷新</span>试试`\n } else {\n text.innerHTML = player.config.errorTips || `please try to <span class=\"xgplayer-error-refresh\">refresh</span>`\n }\n let refresh = null\n\n function onError () {\n // player.controls.style.display = 'none'\n // if (player.error) {\n // text.innerHTML = player.error\n // } else {\n \n // }\n addClass(player.root, 'xgplayer-is-error')\n refresh = error.querySelector('.xgplayer-error-refresh')\n if (refresh) {\n ['touchend', 'click'].forEach(item => {\n refresh.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.autoplay = true\n let currentTime = player.currentTime\n player.once('playing', () => {\n player.currentTime = currentTime\n removeClass(player.root, 'xgplayer-is-error')\n })\n player.src = player.config.url\n })\n })\n }\n }\n player.on('error', onError)\n function onDestroy () {\n player.off('error', onError)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_error',\n method: s_error\n}","import { createDom, format } from '../../utils/util'\nimport '../style/controls/memoryPlay.scss'\n\nlet s_memoryPlay = function () {\n let player = this\n let lastPlayTime = player.config.lastPlayTime || 0\n let lastPlayTimeHideDelay = player.config.lastPlayTimeHideDelay || 0\n let dom = null\n if (lastPlayTime <= 0) {\n return\n }\n dom = createDom('xg-memoryplay', `<div class=\"xgplayer-memoryplay-spot\"><div class=\"xgplayer-progress-tip\">您上次观看到 <span class=\"xgplayer-lasttime\">${format(lastPlayTime)}</span> ,为您自动续播 <span class=\"btn-close\"><svg viewBox=\"64 64 896 896\" focusable=\"false\" class=\"\" data-icon=\"close\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\"></path></svg></span></div></div>`, {}, 'xgplayer-memoryplay');\n dom.addEventListener('mouseover', (e) => {\n e.stopPropagation();\n });\n const removeFunc = () => {\n dom && dom.parentNode && dom.parentNode.removeChild(dom)\n dom = null\n }\n dom.querySelector('.xgplayer-progress-tip .btn-close').addEventListener('click', removeFunc)\n const handlePlay = () => {\n if(lastPlayTimeHideDelay > 0) {\n player.root.appendChild(dom);\n }\n player.emit('memoryPlayStart', lastPlayTime);\n if (lastPlayTimeHideDelay > 0) {\n setTimeout(() => {\n removeFunc()\n }, lastPlayTimeHideDelay * 1000)\n }\n }\n player.once('play', handlePlay)\n player.once('ended', removeFunc)\n}\n\nexport default {\n name: 's_memoryPlay',\n method: s_memoryPlay\n}","import { createDom } from '../../utils/util'\nimport AirplayIcon from '../assets/airplay.svg'\nimport '../style/controls/airplay.scss'\n\nlet s_airplay = function () {\n let player = this\n if(!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent) return\n\n let btn = createDom('xg-airplay', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-airplay\">${AirplayIcon}</div>\n </xg-icon>`, {}, 'xgplayer-airplay')\n\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-airplay\">${player.lang.AIRPLAY_TIPS}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n player.video.addEventListener('webkitplaybacktargetavailabilitychanged',\n event => {\n switch (event.availability) {\n case \"available\":\n btn.hidden = false;\n btn.disabled = false;\n break;\n case \"not-available\":\n btn.hidden = true;\n btn.disabled = true;\n break;\n }\n });\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('airplayBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_airplay',\n method: s_airplay\n}","import Player from '../player'\n\nimport I18n from './controls/i18n.js'\nimport Enter from './controls/enter.js'\nimport Play from './controls/play.js'\nimport Start from './controls/start.js'\nimport Poster from './controls/poster.js'\nimport Flex from './controls/flex.js'\nimport Fullscreen from './controls/fullscreen.js'\nimport CssFullscreen from './controls/cssFullscreen.js'\nimport Volume from './controls/volume.js'\nimport Definition from './controls/definition.js'\nimport Loading from './controls/loading.js'\nimport Progress from './controls/progress.js'\nimport Time from './controls/time.js'\nimport Replay from './controls/replay.js'\nimport PlaybackRate from './controls/playbackRate.js'\nimport LocalPreview from './controls/localPreview.js'\nimport Download from './controls/download.js'\nimport Danmu from './controls/danmu.js'\nimport Pip from './controls/pip.js'\nimport Miniplayer from './controls/miniplayer.js'\nimport PlayNext from './controls/playNext.js'\nimport Rotate from './controls/rotate.js'\nimport Reload from './controls/reload.js'\nimport ScreenShot from './controls/screenShot.js'\nimport NativeTextTrack from './controls/nativeTextTrack.js'\nimport TextTrack from './controls/textTrack.js'\nimport ErrorControl from './controls/error.js'\nimport MemoryPlay from './controls/memoryPlay.js'\nimport Airplay from './controls/airplay.js'\n\nPlayer.installAll([\n I18n,\n Enter,\n Play,\n Start,\n Poster,\n Flex,\n Fullscreen,\n CssFullscreen,\n Volume,\n Definition,\n Loading,\n Progress,\n Time,\n Replay,\n PlaybackRate,\n LocalPreview,\n Download,\n Danmu,\n Pip,\n Miniplayer,\n PlayNext,\n Rotate,\n Reload,\n ScreenShot,\n NativeTextTrack,\n TextTrack,\n ErrorControl,\n MemoryPlay,\n Airplay\n])","import Player from './player'\n\nimport Airplay from './controls/airplay.js'\nimport CssFullscreen from './controls/cssFullscreen.js'\nimport Danmu from './controls/danmu.js'\nimport Definition from './controls/definition.js'\nimport Download from './controls/download.js'\nimport ErrorRetryControl from './controls/errorRetry.js'\nimport Fullscreen from './controls/fullscreen.js'\nimport Keyboard from './controls/keyboard.js'\nimport LocalPreview from './controls/localPreview.js'\nimport MemoryPlay from './controls/memoryPlay.js'\nimport Miniplayer from './controls/miniplayer.js'\nimport Mobile from './controls/mobile.js'\nimport Pc from './controls/pc.js'\nimport Pip from './controls/pip.js'\nimport Play from './controls/play.js'\nimport PlayNext from './controls/playNext.js'\nimport Reload from './controls/reload.js'\nimport Replay from './controls/replay.js'\nimport Rotate from './controls/rotate.js'\nimport ScreenShot from './controls/screenShot.js'\nimport StallCheck from './controls/stallCheck.js'\nimport Start from './controls/start.js'\nimport Volume from './controls/volume.js'\nimport TextTrack from './controls/textTrack.js'\n\nPlayer.installAll([\n Airplay,\n CssFullscreen,\n Danmu,\n Definition,\n Download,\n ErrorRetryControl,\n Fullscreen,\n Keyboard,\n LocalPreview,\n MemoryPlay,\n Miniplayer,\n Mobile,\n Pc,\n Pip,\n Play,\n PlayNext,\n Reload,\n Replay,\n Rotate,\n ScreenShot,\n StallCheck,\n Start,\n Volume,\n TextTrack \n])\n\nimport './skin/index.js';\n\nexport default Player\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack://xgplayer/webpack/universalModuleDefinition","webpack://xgplayer/webpack/bootstrap","webpack://xgplayer/./src/utils/util.js","webpack://xgplayer/./node_modules/css-loader/lib/css-base.js","webpack://xgplayer/./node_modules/style-loader/lib/addStyles.js","webpack://xgplayer/./src/utils/sniffer.js","webpack://xgplayer/./src/error.js","webpack://xgplayer/./src/proxy.js","webpack://xgplayer/./src/player.js","webpack://xgplayer/./node_modules/es5-ext/object/is-value.js","webpack://xgplayer/./src/utils/xgplayerTimeRange.js","webpack://xgplayer/./src/skin/controls/i18n.js","webpack://xgplayer/./node_modules/type/value/is.js","webpack://xgplayer/./node_modules/event-emitter/index.js","webpack://xgplayer/./node_modules/event-emitter/all-off.js","webpack://xgplayer/./src/controls/mobile.js","webpack://xgplayer/./src/controls/pc.js","webpack://xgplayer/./src/controls/start.js","webpack://xgplayer/./src/skin/controls/start.js","webpack://xgplayer/./node_modules/d/index.js","webpack://xgplayer/./node_modules/type/plain-function/is.js","webpack://xgplayer/./node_modules/type/function/is.js","webpack://xgplayer/./node_modules/type/prototype/is.js","webpack://xgplayer/./node_modules/type/object/is.js","webpack://xgplayer/./node_modules/es5-ext/object/assign/index.js","webpack://xgplayer/./node_modules/es5-ext/object/assign/is-implemented.js","webpack://xgplayer/./node_modules/es5-ext/object/assign/shim.js","webpack://xgplayer/./node_modules/es5-ext/object/keys/index.js","webpack://xgplayer/./node_modules/es5-ext/object/keys/is-implemented.js","webpack://xgplayer/./node_modules/es5-ext/object/keys/shim.js","webpack://xgplayer/./node_modules/es5-ext/function/noop.js","webpack://xgplayer/./node_modules/es5-ext/object/valid-value.js","webpack://xgplayer/./node_modules/es5-ext/object/normalize-options.js","webpack://xgplayer/./node_modules/es5-ext/string/#/contains/index.js","webpack://xgplayer/./node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://xgplayer/./node_modules/es5-ext/string/#/contains/shim.js","webpack://xgplayer/./node_modules/es5-ext/object/valid-callable.js","webpack://xgplayer/./node_modules/es5-ext/object/valid-object.js","webpack://xgplayer/./node_modules/es5-ext/object/is-object.js","webpack://xgplayer/./src/skin/style/index.scss?a7b1","webpack://xgplayer/./src/skin/style/index.scss","webpack://xgplayer/./node_modules/style-loader/lib/urls.js","webpack://xgplayer/./src/skin/style/controls/start.scss?7bb8","webpack://xgplayer/./src/skin/style/controls/start.scss","webpack://xgplayer/./src/controls/fullscreen.js","webpack://xgplayer/./src/controls/play.js","webpack://xgplayer/./src/controls/replay.js","webpack://xgplayer/./src/skin/controls/poster.js","webpack://xgplayer/./src/skin/controls/flex.js","webpack://xgplayer/./src/skin/controls/progress.js","webpack://xgplayer/./src/skin/controls/time.js","webpack://xgplayer/./src/skin/controls/play.js","webpack://xgplayer/./src/skin/controls/fullscreen.js","webpack://xgplayer/./src/skin/controls/loading.js","webpack://xgplayer/./src/skin/controls/replay.js","webpack://xgplayer/./src/skin/style/controls/play.scss?9632","webpack://xgplayer/./src/skin/style/controls/play.scss","webpack://xgplayer/./src/skin/style/controls/poster.scss?e9aa","webpack://xgplayer/./src/skin/style/controls/poster.scss","webpack://xgplayer/./src/skin/style/controls/placeholder.scss?a4f4","webpack://xgplayer/./src/skin/style/controls/placeholder.scss","webpack://xgplayer/./src/skin/style/controls/fullscreen.scss?1042","webpack://xgplayer/./src/skin/style/controls/fullscreen.scss","webpack://xgplayer/./src/skin/style/controls/loading.scss?ad0a","webpack://xgplayer/./src/skin/style/controls/loading.scss","webpack://xgplayer/./src/skin/style/controls/progress.scss?de9d","webpack://xgplayer/./src/skin/style/controls/progress.scss","webpack://xgplayer/./src/skin/style/controls/time.scss?a7a6","webpack://xgplayer/./src/skin/style/controls/time.scss","webpack://xgplayer/./src/skin/style/controls/replay.scss?446b","webpack://xgplayer/./src/skin/style/controls/replay.scss","webpack://xgplayer/./src/skin/style/controls/textTrack.scss?c6ad","webpack://xgplayer/./node_modules/downloadjs/download.js","webpack://xgplayer/./node_modules/draggabilly/draggabilly.js","webpack://xgplayer/./node_modules/xgplayer-subtitles/dist/index.min.js","webpack://xgplayer/./node_modules/danmu.js/dist/index.js","webpack://xgplayer/./node_modules/get-size/get-size.js","webpack://xgplayer/./node_modules/unidragger/unidragger.js","webpack://xgplayer/./node_modules/unipointer/unipointer.js","webpack://xgplayer/./node_modules/ev-emitter/ev-emitter.js","webpack://xgplayer/./src/skin/style/controls/enter.scss?879b","webpack://xgplayer/./src/skin/style/controls/enter.scss","webpack://xgplayer/./src/skin/style/controls/cssfullscreen.scss?540d","webpack://xgplayer/./src/skin/style/controls/cssfullscreen.scss","webpack://xgplayer/./src/skin/style/controls/volume.scss?4ba7","webpack://xgplayer/./src/skin/style/controls/volume.scss","webpack://xgplayer/./src/skin/style/controls/definition.scss?ee15","webpack://xgplayer/./src/skin/style/controls/definition.scss","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss?114f","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss","webpack://xgplayer/./src/skin/style/controls/download.scss?9645","webpack://xgplayer/./src/skin/style/controls/download.scss","webpack://xgplayer/(webpack)/buildin/module.js","webpack://xgplayer/./src/skin/style/controls/danmu.scss?4216","webpack://xgplayer/./src/skin/style/controls/danmu.scss","webpack://xgplayer/./src/skin/style/controls/pip.scss?444d","webpack://xgplayer/./src/skin/style/controls/pip.scss","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss?61c3","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss","webpack://xgplayer/./src/skin/style/controls/playNext.scss?f11a","webpack://xgplayer/./src/skin/style/controls/playNext.scss","webpack://xgplayer/./src/skin/style/controls/rotate.scss?2dec","webpack://xgplayer/./src/skin/style/controls/rotate.scss","webpack://xgplayer/./src/skin/style/controls/reload.scss?8b15","webpack://xgplayer/./src/skin/style/controls/reload.scss","webpack://xgplayer/./src/skin/style/controls/screenShot.scss?ac1c","webpack://xgplayer/./src/skin/style/controls/screenShot.scss","webpack://xgplayer/./src/skin/style/controls/textTrack.scss","webpack://xgplayer/./src/skin/style/controls/error.scss?0329","webpack://xgplayer/./src/skin/style/controls/error.scss","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss?0c39","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss","webpack://xgplayer/./src/skin/style/controls/airplay.scss?643b","webpack://xgplayer/./src/skin/style/controls/airplay.scss","webpack://xgplayer/./src/controls/airplay.js","webpack://xgplayer/./src/controls/cssFullscreen.js","webpack://xgplayer/./src/controls/danmu.js","webpack://xgplayer/./src/controls/definition.js","webpack://xgplayer/./src/controls/download.js","webpack://xgplayer/./src/utils/url.js","webpack://xgplayer/./src/controls/errorRetry.js","webpack://xgplayer/./src/controls/keyboard.js","webpack://xgplayer/./src/controls/localPreview.js","webpack://xgplayer/./src/controls/memoryPlay.js","webpack://xgplayer/./src/controls/miniplayer.js","webpack://xgplayer/./src/controls/pip.js","webpack://xgplayer/./src/controls/playNext.js","webpack://xgplayer/./src/controls/reload.js","webpack://xgplayer/./src/controls/rotate.js","webpack://xgplayer/./src/controls/screenShot.js","webpack://xgplayer/./src/controls/stallCheck.js","webpack://xgplayer/./src/controls/volume.js","webpack://xgplayer/./src/controls/textTrack.js","webpack://xgplayer/./src/skin/controls/enter.js","webpack://xgplayer/./src/skin/controls/cssFullscreen.js","webpack://xgplayer/./src/skin/controls/volume.js","webpack://xgplayer/./src/skin/controls/definition.js","webpack://xgplayer/./src/skin/controls/playbackRate.js","webpack://xgplayer/./src/skin/controls/localPreview.js","webpack://xgplayer/./src/skin/controls/download.js","webpack://xgplayer/./src/skin/controls/danmu.js","webpack://xgplayer/./src/skin/controls/pip.js","webpack://xgplayer/./src/skin/controls/miniplayer.js","webpack://xgplayer/./src/skin/controls/playNext.js","webpack://xgplayer/./src/skin/controls/rotate.js","webpack://xgplayer/./src/skin/controls/reload.js","webpack://xgplayer/./src/skin/controls/screenShot.js","webpack://xgplayer/./src/skin/controls/nativeTextTrack.js","webpack://xgplayer/./src/skin/controls/textTrack.js","webpack://xgplayer/./src/skin/controls/error.js","webpack://xgplayer/./src/skin/controls/memoryPlay.js","webpack://xgplayer/./src/skin/controls/airplay.js","webpack://xgplayer/./src/skin/index.js","webpack://xgplayer/./src/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","createDom","el","tpl","attrs","cname","dom","document","createElement","className","innerHTML","keys","forEach","item","setAttribute","hasClass","classList","Array","some","match","RegExp","addClass","replace","split","add","removeClass","remove","reg","toggleClass","findDom","sel","querySelector","e","indexOf","getElementById","slice","padStart","str","length","pad","charstr","String","len","maxlen","Math","ceil","chars","push","join","substring","format","time","isNaN","hour","floor","minute","second","event","touches","touch","changedTouches","clientX","clientY","offsetX","pageX","target","offsetLeft","offsetY","pageY","offsetTop","_target","srcElement","typeOf","obj","toString","deepCopy","dst","src","Node","concat","copyDom","nodeType","back","tagName","attributes","node","_setInterval","context","eventName","intervalFunc","frequency","_interval","setInterval","_clearInterval","clearInterval","createImgBtn","imgUrl","width","height","btn","style","backgroundImage","w","h","unit","every","Number","trim","backgroundSize","margin","isWeiXin","navigator","userAgent","toLowerCase","isUc","offInDestroy","fn","offEvent","once","onDestroy","off","on","_fn","data","getBuffered2","vbuffered","maxHoleDuration","buffered","start","end","sort","a","b","diff","buffered_2","buf2len","buf2end","XgplayerTimeRange","checkIsBrowser","setStyle","elem","error","setProperty","PresentationMode","PIP","INLINE","FULLSCREEN","checkWebkitSetPresentationMode","video","webkitSetPresentationMode","util","getBgImage","url","currentStyle","getComputedStyle","href","computeWatchDur","played","arr","begin","j","splice","min","max","watch_dur","useSourceMap","list","this","map","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","id","memo","stylesInDom","isOldIE","all","atob","apply","arguments","getTarget","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","createStyleElement","type","addAttrs","update","result","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","autoFixUrls","undefined","convertToAbsoluteUrls","blob","oldSrc","sniffer","os","isPc","ua","ie","firfox","chrome","opera","safari","test","isWindowsPhone","isSymbian","isAndroid","isFireFox","isTablet","isPhone","ErrorTypes","network","code","msg","remark","mse","parse","decoder","runtime","timeout","other","Errors","constructor","currentTime","duration","networkState","readyState","currentSrc","ended","errd","line","handle","version","errorCode","mediaError","playerVersion","errorType","domain","ex","arg","Proxy","_hasStart","videoConfig","controls","isShowControl","autoplay","playsinline","airplay","tabindex","mediaType","muted","loop","textTrackDom","textTrackShowDefault","nativeTextTrack","isArray","track","default","label","kind","srclang","crossorigin","textTrackStyle","styleStr","wrap","sheet","insertRule","addRule","XgVideoProxy","videoStyle","getElementsByTagName","autoplayMuted","ev","charAt","toUpperCase","EventEmitter","lastBuffer","self","defaultVideoEventHandler","hasStart","inWaitingStart","Date","getTime","_onError","emit","curBuffer","videoEventHandler","videoEventMiddleware","evItem","addEventListener","bool","destroy","play","pause","canPlayType","getBufferedRange","range","proxyOn","proxyOnce","isTrue","crossOrigin","isFinite","replay","defaultMuted","config","err","status","en","cn","lang","playbackRate","rate","preload","seekable","seeking","posterUrl","poster","volume","vol","Player","super","ignores","whitelist","documentElement","getAttribute","language","toLocaleLowerCase","inactive","controlsList","userTimer","waitTimer","history","isProgressMoving","unselectable","onselectstart","display","vid","console","device","fluid","execBeforePluginsCall","closeI18n","install","s_i18n","method","controlStyle","fetch","headers","Accept","then","res","ok","json","prop","pluginsCall","catch","log","controlPlugins","controlsRun","evName","evFunc","player","mousemoveFunc","closeFocusVideoFocus","focus","playFunc","closePlayVideoFocus","getVideoSize","videoWidth","videoHeight","containerSize","getBoundingClientRect","fitVideoSize","setTimeout","isReady","videoInit","rotate","updateRotateDeg","removeEventListener","attachVideo","danmu","resize","canPlayFunc","playPromise","disableStartLoad","load","reload","reloadFunc","isDelDom","bulletResizeTimer","k","destroyFunc","removeAttribute","classNameList","allOff","checkTimer","clearTimeout","loadeddataFunc","replayFunc","keyShortcut","onKeydown","paused","_replay","browser","Function","userGestureTrigEvent","param","defaultUserGestureEventHandler","userGestureEventMiddleware","plugins","descriptor","warn","onFocus","onBlur","enablePausedInactive","closeInactive","onPlay","onPause","onEnded","onSeeking","isSeeking","onWaiting","onSeeked","onPlaying","use","controlLst","control","_undefined","require","val","bufferedList","HAVE_NOTHING","HAVE_METADATA","HAVE_CURRENT_DATA","HAVE_FUTURE_DATA","HAVE_ENOUGH_DATA","NETWORK_EMPTY","NETWORK_IDLE","NETWORK_LOADING","NETWORK_NO_SOURCE","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","REPLAY","ERROR","PLAY_TIPS","PAUSE_TIPS","PLAYNEXT_TIPS","DOWNLOAD_TIPS","ROTATE_TIPS","RELOAD_TIPS","FULLSCREEN_TIPS","EXITFULLSCREEN_TIPS","CSSFULLSCREEN_TIPS","EXITCSSFULLSCREEN_TIPS","TEXTTRACK","MINIPLAYER","SCREENSHOT","LIVE","OFF","MINIPLAYER_DRAG","AIRPLAY_TIPS","set","methods","descriptors","callable","defineProperties","configurable","writable","listener","__eeOnceListener__","__ee__","listeners","candidate","args","emitter","_click_","clk","clickedTime","first","onReady","onElementTouchend","isTouchMove","element","closeVideoPreventDefault","preventDefault","closeVideoStopPropagation","stopPropagation","closeVideoTouch","onTouch","closeVideoClick","enableVideoDbltouch","abs","onMouseEnter","leavePlayerTimer","onMouseLeave","closePlayerBlur","leavePlayerTime","onElementClick","onElementDblclick","closeVideoDblclick","fullscreen","createEvent","initEvent","Event","dispatchEvent","closeControlsBlur","onCanPlay","onStartBtnClick","contains","mediaSource","onPlayerReady","enableContextmenu","hideStartBtn","onclick","isValue","isPlainFunction","assign","normalizeOpts","dscr","desc","gs","isFunction","classRe","functionToString","isPrototype","isObject","possibleTypes","foo","bar","trzy","dest","TypeError","process","opts1","searchString","function","locals","location","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","onFullscreenBtnClick","rotateFullscreen","exitRotateFullscreen","getRotateFullscreen","exitFullscreen","getFullscreen","onFullscreenChange","fullscreenEl","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","onWebkitpresentationmodechanged","webkitPresentationMode","requestFullscreen","fullscreenPromise","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","webkitSupportsFullscreen","webkitEnterFullscreen","msRequestFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","onPlayBtnClick","allowPlayAfterEnded","onReplayBtnClick","playceholder","isRotateFullscreen","containerWidth","container","progress","outer","cache","point","thumbnail","dotEvent","dotItem","text","dotArr","onCanplay","progressDot","dot","left","addProgressDot","removeProgressDot","removeAllProgressDot","coverPreviewContainer","coverPreviewPoint","coverPreviewOuter","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","interval","tnailUrls","onLoadedmetadata","isShowCoverPreview","pic_num","col","row","urls","disableSwipeHandler","enableSwipeHandler","disableSwipe","disableProgress","allowSeekAfterEnded","isRotate","top","move","now","allowSeekPlayed","toFixed","maxPlayedTime","dash","closeMoveSeek","indexInPage","tnaiRowIndex","tnaiColIndex","up","passive","blur","containerLeft","compute","textContent","pointWidth","leave","onTimeupdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","onCacheUpdate","cacheUpdateEvents","onTimeChange","playBtn","tipsText","tips","fullscreenBtn","request","requestfull","exitfull","replayText","path","getPropertyValue","svg","download","strFileName","strMimeType","reader","defaultMime","mimeType","payload","anchor","myBlob","MozBlob","WebKitBlob","fileName","pop","ajax","XMLHttpRequest","open","responseType","onload","response","send","msSaveBlob","dataUrlToBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","binData","decodeURIComponent","uiArr","winMode","body","click","confirm","f","y","FileReader","readAsDataURL","getSize","Unidragger","extend","jQuery","Draggabilly","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","applyGrid","grid","position","_getPosition","startPoint","x","dragPoint","startPosition","onPointerMove","onPointerUp","enable","setHandles","handles","querySelectorAll","bindHandles","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","trigger","_getPositionCoord","_addTransformPosition","styleSide","measure","parentSize","parseFloat","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","pointerDown","okayPointerDown","isEnabled","pointerDownPointer","pointerDownBlur","_bindPostStartEvents","_pointerReset","dragStart","measureContainment","setLeftTop","animate","getContainer","elemSize","elemRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","HTMLElement","moveVector","dragMove","dragX","dragY","gridX","gridY","containDrag","axis","drag","dragEnd","isDragging","positionDrag","_this","requestAnimationFrame","staticClick","setPosition","disable","unbindHandles","removeData","_init","bridget","promise","resolve","F","reject","Je","u","kr","Fr","_","xr","Nr","parseJson","stringContent","Tr","statusText","message","T","S","O","__e","E","__g","P","copyright","M","random","A","C","R","N","L","I","getPrototypeOf","z","B","D","H","V","W","G","U","$","K","valueOf","J","Y","X","q","Z","virtual","Q","tt","et","nt","rt","it","ot","st","at","ut","ct","lt","ft","propertyIsEnumerable","ht","dt","pt","vt","yt","mt","gt","_t","xt","bt","kt","wt","Tt","St","Ot","Et","Pt","contentWindow","write","close","jt","Mt","store","At","Ct","Rt","Nt","It","Ft","zt","Bt","next","Lt","v","g","entries","values","Dt","_i","done","Ht","_k","Arguments","Vt","Wt","Gt","Ut","$t","Kt","Jt","Yt","Xt","qt","isExtensible","preventExtensions","KEY","NEED","fastKey","getWeak","onFreeze","Zt","Qt","te","getOwnPropertySymbols","ee","re","oe","getOwnPropertyNames","se","ae","ue","le","ce","fe","getOwnPropertyDescriptor","he","de","pe","ve","ye","ge","me","_e","xe","be","ke","we","Te","Se","Oe","Ee","Pe","QObject","je","findChild","Me","Ae","Ce","iterator","Re","Ne","ne","Fe","ze","Be","De","He","Ve","We","for","keyFor","useSetter","useSimple","Ge","Ue","$e","Ke","Ye","ReferenceError","Xe","qe","Ze","Qe","tn","setPrototypeOf","__proto__","check","nn","rn","sn","an","un","ln","hn","dn","vn","pn","callee","gn","return","mn","_n","bn","kn","getIteratorMethod","wn","xn","BREAK","RETURN","Tn","Sn","On","En","Pn","setImmediate","jn","clearImmediate","Mn","MessageChannel","An","Dispatch","Cn","Rn","Nn","Ln","nextTick","port2","port1","onmessage","postMessage","importScripts","onreadystatechange","In","clear","Fn","zn","MutationObserver","WebKitMutationObserver","Bn","Dn","Promise","Hn","Vn","Wn","Gn","Un","$n","Kn","Jn","Yn","Xn","from","qn","Zn","Qn","tr","er","nr","exit","enter","standalone","observe","characterData","rr","ir","or","versions","sr","v8","ar","ur","cr","lr","fr","PromiseRejectionEvent","hr","dr","_c","_v","_s","fail","_h","yr","pr","vr","onunhandledrejection","reason","_a","onrejectionhandled","gr","_d","_w","mr","yn","race","finally","try","_r","br","wr","_events","_eventsCount","eventNames","listenerCount","removeListener","removeAllListeners","addListener","prefixed","onerror","ontimeout","onabort","setRequestHeader","Sr","Or","Er","Pr","jr","Mr","Ar","Cr","Rr","checkFormat","parseASS","parseVTT","textTag","parseASSItem","exec","checkIsTime","parseVttTime","parseVttText","tag","Lr","__handlers","ResizeObserver","observer","__trigger","handler","unobserve","disconnect","contentRect","__runHandler","Ir","zr","Br","currentText","textTrack","_cid","_gid","_cids","_iId","_iC","bottom","defaultOpen","baseSizeX","baseSizeY","minSize","minMobileSize","fitVideo","offsetBottom","fontColor","_ctime","_loadingTrack","_isOpen","_videoMeta","scale","lwidth","lheight","vWidth","vHeight","vBottom","vLeft","marginBottom","subTitles","attachPlayer","setSubTitles","innerRoot","switchOff","isDefault","addStyles","switch","disabled","detachPlayer","color","__onTimeupdate","addObserver","_onResize","unObserver","_updateCurrent","show","trace","hide","__remove","_update","includes","getDelCid","getNewCid","__render","round","__startResize","fontSize","right","children","startsWith","formatTime","logger","setLogger","info","overlap","area","live","comments","direction","needResizeObserver","hideArr","domObj","containerStyle","bulletBtn","addResizeObserver","main","stop","txt","opacity","like","prior","realTime","unshift","readData","dataHandle","queue","pauseMove","startMove","setLikeDom","mouseControl","forceDuration","setFontSize","channel_id","topInit","channelSize","channel","constructorName","defaultOff","switchBtn","playedData","timer","retryTimer","retryStatus","updateQueue","nums","dataHandleTimer","bullet","hasAttached","resetWithCb","init","reset","channels","resized","containerPos","detach","noDiscard","attach","addBullet","removeBullet","containerHeight","containerRight","resizing","resizeTimer","bookChannelId","scroll","operating","bookId","channelWidth","channelHeight","bOffset","resetTimer","moveV","onChangeDirection","eventListeners","useCapture","elPos","mouseoverFunWrapper","mouseoverFun","mouseEnterControl","mouseEnterFunWrapper","mouseControlPause","unuse","removeTimer","moveTime","moveMoreS","moveContainerHeight","moveContainerWidth","pastDuration","startTime","hasMove","startMoveTimer","outerHTML","initDOM","initSize","idleList","usingList","_id","_expand","shift","textcontent","clearElementStyle","timeStampe","destroyObserver","hmr","getStyleSize","num","logError","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","div","padding","borderStyle","borderWidth","boxSizing","setup","size","innerWidth","innerHeight","outerWidth","outerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","borderHeight","isBorderBoxSizeOuter","styleWidth","styleHeight","Unipointer","_bindHandles","isAdd","bindMethod","touchAction","_touchActionValue","_bindStartEvent","PointerEvent","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","button","submit","image","file","isCursorNode","nodeName","isClickType","isOkay","focused","activeElement","pointerMove","_dragPointerMove","_dragMove","hasDragStarted","_dragStart","pointerUp","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","EvEmitter","bindStartEvent","unbindStartEvent","startEvent","handleEvent","getTouch","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","onpointerdown","isPointerDown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","events","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","onceEvents","_onceEvents","onceListeners","webpackPolyfill","deprecate","paths","onAirplayBtnClick","webkitShowPlaybackTargetPicker","WebKitPlaybackTargetAvailabilityEvent","onCssFullscreenBtnClick","exitCssFullscreen","getCssFullscreen","danmujs","closeDefaultBtn","danmuBtn","createSwitch","onDownloadBtnClick","getAbsoluteURL","downloadUtil","defaultConfig","maxCount","backupUrl","isFetch","fetchTimeout","errorConfig","_inConfig","retryCanPlay","retryData","retryCode","isFetchReturn","count","errfTimer","_originErrorEmit","errorCount","resolveFun","xhr","errorfetch","httpCode","httpMsg","Keyboard","state","isRepeat","keyCode","repeat","isBody","initEvents","onBodyKeydown","onKeyup","checkTarget","cancelBubble","returnValue","handlerKeyCode","changeVolumeSlide","disableLongPress","isLonePress","changeRate","seek","changeVolume","isBack","isLongPress","currentTimeStep","keyShortcutStep","isLoading","keyboardRate","isup","volumeStep","keyboard","onUpload","upload","uploadFile","files","lastPlayTime","onMiniplayerBtnClick","exitMiniplayer","getMiniplayer","dragLay","dragHandle","miniplayerConfig","onPipBtnClick","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","pMode","pictureInPictureWindow","pipWindow","nextBtn","playNext","onPlayNextBtnClick","currentVideoIndex","urlList","onReloadBtnClick","rotateConfig","onRotateBtnClick","clockwise","innerRotate","rotateDeg","targetWidth","targetHeight","controlsFix","transformOrigin","webKitTransform","times","factor","screenShotOptions","screenShot","encoderOptions","quality","canvas","canvasCtx","getContext","img","Image","save","saveImg","drawImage","toDataURL","screenShotImg","filename","saveLink","initMouseEvent","saveScreenShot","enableStallCheck","stallFlag","stallCheckTimer","progressTimer","lastCurrentTime","slider","selected","onVolumeChange","onVolumeBarClick","barRect","pos","isMove","onMove","onUp","onVolumeIconClick","onVolumeIconEnter","onVolumeIconLeave","_changeTimer","defaultStyle","follow","followBottom","XgSubtitles","subtitle","positionData","isActive","onSubtitleResize","SubTitles","subtitles","showDefault","isNeedMove","needRemove","isListUpdate","switchSubTitle","switchOffSubtile","barStr","cssFullscreen","icon","onCanplayResourceReady","definitionList","tmp","switchURL","_options","_mediaDataSource","originUrl","cursrc","urlInRoot","cur","definitionActive","onResourceReady","onPlayingChangeDefinition","curTime","onTimeupdateChangeDefinition","li","to","curRUL","getCurrentDefinition","liList","switchDefinition","definitionObj","playbackRateList","playbackRateUnit","playbackRateActive","selectedSpeed","defaultPlaybackRate","playbackDom","switchPlaybackRate","playbackRateObj","preview","uploadEl","onchange","panelBtn","panel","DanmuJs","focusStatus","danmuConfig","hidemodeArray","transparency","transparencyGradient","transparencyValue","background","showareaValue","danmuspeedValue","danmufontValue","pip","miniplayer","onUrlListEnd","hideButton","screenShotText","iconText","controlText","textTrackActive","trackDoms","ul","renderList","offText","isDefaultShow","onListUpdate","errorTips","refresh","onError","lastPlayTimeHideDelay","removeFunc","availability","hidden","installAll","I18n","Enter","Play","Start","Poster","Flex","Fullscreen","CssFullscreen","Volume","Definition","Loading","Progress","Time","Replay","PlaybackRate","LocalPreview","Download","Danmu","Pip","Miniplayer","PlayNext","Rotate","Reload","ScreenShot","NativeTextTrack","TextTrack","ErrorControl","MemoryPlay","Airplay","ErrorRetryControl","Mobile","Pc","StallCheck"],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"xgplayer\"] = factory();\n\telse\n\t\troot[\"xgplayer\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 74);\n","import XgplayerTimeRange from './xgplayerTimeRange'\n\nexport function createDom(el = 'div', tpl = '', attrs = {}, cname = '') {\n let dom = document.createElement(el)\n dom.className = cname\n dom.innerHTML = tpl\n Object.keys(attrs).forEach(item => {\n let key = item\n let value = attrs[item]\n if (el === 'video' || el === 'audio') {\n if (value) {\n dom.setAttribute(key, value)\n }\n } else {\n dom.setAttribute(key, value)\n }\n })\n return dom\n}\n\nexport function hasClass(el, className) {\n if (!el) {\n return false;\n }\n\n if (el.classList) {\n return Array.prototype.some.call(el.classList, item => item === className)\n } else if (el.className) {\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'))\n } else {\n return false;\n }\n}\n\nexport function addClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n className.replace(/(^\\s+|\\s+$)/g, '').split(/\\s+/g).forEach(item => {\n item && el.classList.add(item)\n })\n } else if (!hasClass(el, className)) {\n el.className += ' ' + className\n }\n}\n\nexport function removeClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n className.split(/\\s+/g).forEach(item => {\n el.classList.remove(item)\n })\n } else if (hasClass(el, className)) {\n className.split(/\\s+/g).forEach(item => {\n let reg = new RegExp('(\\\\s|^)' + item + '(\\\\s|$)')\n el.className = el.className.replace(reg, ' ')\n })\n }\n}\n\nexport function toggleClass(el, className) {\n if (!el) {\n return;\n }\n\n className.split(/\\s+/g).forEach(item => {\n if (hasClass(el, item)) {\n removeClass(el, item)\n } else {\n addClass(el, item)\n }\n })\n}\n\nexport function findDom(el = document, sel) {\n let dom\n // fix querySelector IDs that start with a digit\n // https://stackoverflow.com/questions/37270787/uncaught-syntaxerror-failed-to-execute-queryselector-on-document\n try {\n dom = el.querySelector(sel)\n } catch (e) {\n if (sel.indexOf('#') === 0) {\n dom = el.getElementById(sel.slice(1))\n }\n }\n return dom\n}\n\nexport function padStart(str, length, pad) {\n let charstr = String(pad)\n let len = length >> 0\n let maxlen = Math.ceil(len / charstr.length)\n let chars = []\n let r = String(str)\n while (maxlen--) {\n chars.push(charstr)\n }\n return chars.join('').substring(0, len - r.length) + r\n}\n\nexport function format(time) {\n if (window.isNaN(time)) {\n return ''\n }\n let hour = padStart(Math.floor(time / 3600), 2, 0)\n let minute = padStart(Math.floor((time - hour * 3600) / 60), 2, 0)\n let second = padStart(Math.floor((time - hour * 3600 - minute * 60)), 2, 0)\n return (hour === '00' ? [minute, second] : [hour, minute, second]).join(':')\n}\n\nexport function event(e) {\n if (e.touches) {\n let touch = e.touches[0] || e.changedTouches[0]\n e.clientX = touch.clientX || 0\n e.clientY = touch.clientY || 0\n e.offsetX = touch.pageX - touch.target.offsetLeft\n e.offsetY = touch.pageY - touch.target.offsetTop\n }\n e._target = e.target || e.srcElement\n}\n\nexport function typeOf(obj) {\n return Object.prototype.toString.call(obj).match(/([^\\s.*]+)(?=]$)/g)[0]\n}\n\nexport function deepCopy(dst, src) {\n if (typeOf(src) === 'Object' && typeOf(dst) === 'Object') {\n Object.keys(src).forEach(key => {\n if (typeOf(src[key]) === 'Object' && !(src[key] instanceof Node)) {\n if (!dst[key]) {\n dst[key] = src[key]\n } else {\n deepCopy(dst[key], src[key])\n }\n } else if (typeOf(src[key]) === 'Array') {\n dst[key] = typeOf(dst[key]) === 'Array' ? dst[key].concat(src[key]) : src[key]\n } else {\n dst[key] = src[key]\n }\n })\n return dst\n }\n}\nexport function getBgImage(el) {\n // fix: return current page url when url is none\n let url = (el.currentStyle || window.getComputedStyle(el, null)).backgroundImage\n if (!url || url === 'none') {\n return ''\n }\n let a = document.createElement('a')\n a.href = url.replace(/url\\(\"|\"\\)/g, '')\n return a.href\n}\n\nexport function copyDom(dom) {\n if (dom && dom.nodeType === 1) {\n let back = document.createElement(dom.tagName)\n Array.prototype.forEach.call(dom.attributes, (node) => {\n back.setAttribute(node.name, node.value)\n })\n if (dom.innerHTML) {\n back.innerHTML = dom.innerHTML\n }\n return back\n } else {\n return ''\n }\n}\n\nexport function _setInterval(context, eventName, intervalFunc, frequency) {\n if (!context._interval[eventName]) {\n context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency)\n }\n}\n\nexport function _clearInterval(context, eventName) {\n clearInterval(context._interval[eventName])\n context._interval[eventName] = null\n}\n\nexport function createImgBtn(name, imgUrl, width, height) {\n let btn = createDom(`xg-${name}`, '', {}, `xgplayer-${name}-img`)\n btn.style.backgroundImage = `url(\"${imgUrl}\")`\n if (width && height) {\n let w, h, unit\n ['px', 'rem', 'em', 'pt', 'dp', 'vw', 'vh', 'vm', '%'].every((item) => {\n if (width.indexOf(item) > -1 && height.indexOf(item) > -1) {\n w = Number(width.slice(0, width.indexOf(item)).trim())\n h = Number(height.slice(0, height.indexOf(item)).trim())\n unit = item\n return false\n } else {\n return true\n }\n })\n btn.style.width = `${w}${unit}`\n btn.style.height = `${h}${unit}`\n btn.style.backgroundSize = `${w}${unit} ${h}${unit}`\n if (name === 'start') {\n btn.style.margin = `-${h / 2}${unit} auto auto -${w / 2}${unit}`\n } else {\n btn.style.margin = 'auto 5px auto 5px'\n }\n }\n return btn\n}\n\nexport function isWeiXin() {\n let ua = window.navigator.userAgent.toLowerCase()\n return ua.indexOf('micromessenger') > -1\n}\n\nexport function isUc() {\n let ua = window.navigator.userAgent.toLowerCase()\n return ua.indexOf('ucbrowser') > -1\n}\n\nexport function computeWatchDur(played = []) {\n let arr = []\n for (let i = 0; i < played.length; i++) {\n if(!played[i].end || played[i].begin < 0 || played[i].end < 0 || played[i].end < played[i].begin) {\n continue\n }\n if(arr.length < 1) {\n arr.push({begin: played[i].begin, end: played[i].end})\n } else {\n for (let j = 0; j < arr.length; j++) {\n let begin = played[i].begin\n let end = played[i].end\n if(end < arr[j].begin) {\n arr.splice(j, 0, {begin, end})\n break\n } else if(begin > arr[j].end) {\n if(j > arr.length - 2) {\n arr.push({begin, end})\n break\n }\n } else {\n let b = arr[j].begin\n let e = arr[j].end\n arr[j].begin = Math.min(begin, b)\n arr[j].end = Math.max(end, e)\n break\n }\n }\n }\n }\n let watch_dur = 0\n for (let i = 0; i < arr.length; i++) {\n watch_dur += arr[i].end - arr[i].begin\n }\n return watch_dur\n}\n\nexport function offInDestroy(object, event, fn, offEvent) {\n function onDestroy () {\n object.off(event, fn)\n object.off(offEvent, onDestroy)\n }\n object.once(offEvent, onDestroy)\n}\n\nexport function on(object, event, fn, offEvent) {\n if (offEvent) {\n object.on(event, fn)\n offInDestroy(object, event, fn, offEvent)\n } else {\n let _fn = data => {\n fn(data)\n object.off(event, _fn)\n }\n object.on(event, _fn)\n }\n}\n\nexport function once(object, event, fn, offEvent) {\n if (offEvent) {\n object.once(event, fn)\n offInDestroy(object, event, fn, offEvent)\n } else {\n let _fn = data => {\n fn(data)\n object.off(event, _fn)\n }\n object.once(event, _fn)\n }\n}\n\nexport function getBuffered2(vbuffered, maxHoleDuration = 0.5) { //ref: hls.js\n let buffered = []\n for (let i = 0; i < vbuffered.length; i++) {\n buffered.push({ start: vbuffered.start(i) < 0.5 ? 0 : vbuffered.start(i), end: vbuffered.end(i) });\n }\n buffered.sort(function (a, b) {\n let diff = a.start - b.start;\n if (diff) {\n return diff;\n } else {\n return b.end - a.end;\n }\n });\n let buffered_2 = []\n if (maxHoleDuration) {\n for (let i = 0; i < buffered.length; i++) {\n let buf2len = buffered_2.length\n if (buf2len) {\n let buf2end = buffered_2[buf2len - 1].end\n if ((buffered[i].start - buf2end) < maxHoleDuration) {\n if (buffered[i].end > buf2end) {\n buffered_2[buf2len - 1].end = buffered[i].end\n }\n } else {\n buffered_2.push(buffered[i])\n }\n } else {\n buffered_2.push(buffered[i])\n }\n }\n } else {\n buffered_2 = buffered\n }\n return new XgplayerTimeRange(buffered_2)\n}\n\nexport function checkIsBrowser() {\n return !(typeof(window) === 'undefined' || typeof(window.document) === 'undefined' || typeof(window.document.createElement) === 'undefined')\n}\n\nexport function setStyle(elem, name, value) {\n let style = elem.style;\n try {\n style[name] = value;\n } catch (error) {\n style.setProperty( name, value );\n }\n}\n\nexport const PresentationMode = {\n PIP: 'picture-in-picture',\n INLINE: 'inline',\n FULLSCREEN: 'fullscreen'\n}\n\nexport function checkWebkitSetPresentationMode (video) {\n return typeof video.webkitSetPresentationMode === 'function'\n}\n\nexport const util = {\n createDom, hasClass, addClass, removeClass, toggleClass, findDom, padStart, format, event, typeOf, \n deepCopy, getBgImage, copyDom, setInterval: _setInterval, clearInterval: _clearInterval, createImgBtn, isWeiXin, isUc, computeWatchDur,\n offInDestroy, on, once, getBuffered2, checkIsBrowser, setStyle\n}\n\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","let sniffer = {}\n\nObject.defineProperty(sniffer, 'device', {\n get: function () {\n let r = sniffer.os\n return r.isPc ? 'pc' : 'mobile'\n // return r.isPc ? 'pc' : r.isTablet ? 'tablet' : 'mobile'\n }\n})\n\nObject.defineProperty(sniffer, 'browser', {\n get: function () {\n let ua = navigator.userAgent.toLowerCase()\n let reg = {\n ie: /rv:([\\d.]+)\\) like gecko/,\n firfox: /firefox\\/([\\d.]+)/,\n chrome: /chrome\\/([\\d.]+)/,\n opera: /opera.([\\d.]+)/,\n safari: /version\\/([\\d.]+).*safari/\n }\n return [].concat(Object.keys(reg).filter(key => reg[key].test(ua)))[0] || ''\n }\n})\n\nObject.defineProperty(sniffer, 'os', {\n get: function () {\n let ua = navigator.userAgent\n let isWindowsPhone = /(?:Windows Phone)/.test(ua)\n let isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone\n let isAndroid = /(?:Android)/.test(ua)\n let isFireFox = /(?:Firefox)/.test(ua)\n let isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua))\n let isPhone = /(?:iPhone)/.test(ua) && !isTablet\n let isPc = !isPhone && !isAndroid && !isSymbian && !isTablet\n return {\n isTablet,\n isPhone,\n isAndroid,\n isPc,\n isSymbian,\n isWindowsPhone,\n isFireFox\n }\n }\n})\n\nexport default sniffer\n","import {version} from '../version.json'\nconst ErrorTypes = {\n network: {\n code: 1,\n msg: '视频下载错误',\n remark: '只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在'\n },\n mse: {\n code: 2,\n msg: '流追加错误',\n remark: '追加流的时候如果类型不对、无法被正确解码则会触发此类错误'\n },\n parse: {\n code: 3,\n msg: '解析错误',\n remark: 'mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误'\n },\n format: {\n code: 4,\n msg: '格式错误',\n remark: '如果浏览器不支持的格式导致播放错误'\n },\n decoder: {\n code: 5,\n msg: '解码错误',\n remark: '浏览器解码异常会抛出此类型错误'\n },\n runtime: {\n code: 6,\n msg: '语法错误',\n remark: '播放器语法错误'\n },\n timeout: {\n code: 7,\n msg: '播放超时',\n remark: '播放过程中无法正常请求下一个分段导致播放中断'\n },\n other: {\n code: 8,\n msg: '其他错误',\n remark: '不可知的错误或被忽略的错误类型'\n }\n}\n\nclass Errors {\n constructor (type, currentTime, duration, networkState, readyState, src, currentSrc,\n ended, errd = {line: '', handle: '', msg: '', version: ''}, errorCode, mediaError) {\n let r = {}\n if (arguments.length > 1) {\n r.playerVersion = version // 播放器版本\n r.errorType = type\n r.domain = document.domain // domain\n r.duration = duration // 视频时长\n r.currentTime = currentTime\n r.networkState = networkState\n r.readyState = readyState\n r.currentSrc = currentSrc\n r.src = src\n r.ended = ended\n r.errd = errd // 错误详情\n r.ex = (ErrorTypes[type] || {}).msg // 补充信息\n r.errorCode = errorCode\n r.mediaError = mediaError\n } else {\n const arg = arguments[0]\n Object.keys(arg).map(key => {\n r[key] = arg[key]\n })\n r.ex = ((arg.type && ErrorTypes[arg.type]) || {}).msg\n }\n return r\n }\n}\nexport default Errors\n","import EventEmitter from 'event-emitter'\nimport { findDom, createDom, hasClass, removeClass, _clearInterval, _setInterval, on, once, getBuffered2, setStyle } from './utils/util'\nimport Errors from './error'\n\nclass Proxy {\n constructor (options) {\n this._hasStart = false\n this.videoConfig = {\n controls: !!options.isShowControl,\n autoplay: options.autoplay,\n playsinline: options.playsinline,\n 'webkit-playsinline': options.playsinline,\n 'x5-playsinline': options.playsinline,\n 'x5-video-player-type': options['x5-video-player-type'] || options['x5VideoPlayerType'],\n 'x5-video-player-fullscreen': options['x5-video-player-fullscreen'] || options['x5VideoPlayerFullscreen'],\n 'x5-video-orientation': options['x5-video-orientation'] || options['x5VideoOrientation'],\n airplay: options['airplay'],\n 'webkit-airplay': options['airplay'],\n tabindex: 2,\n mediaType: options.mediaType || 'video'\n }\n if (options.muted) {\n this.videoConfig.muted = 'muted'\n }\n if (options.loop) {\n this.videoConfig.loop = 'loop'\n }\n let textTrackDom = ''\n this.textTrackShowDefault = true\n if (options.nativeTextTrack && Array.isArray(options.nativeTextTrack)) {\n if (options.nativeTextTrack.length > 0 && !options.nativeTextTrack.some(track => { return track.default })) {\n options.nativeTextTrack[0].default = true\n this.textTrackShowDefault = false\n }\n options.nativeTextTrack.some(track => {\n if (track.src && track.label && track.default) {\n textTrackDom += `<track src=\"${track.src}\" `\n if (track.kind) {\n textTrackDom += `kind=\"${track.kind}\" `\n }\n textTrackDom += `label=\"${track.label}\" `\n if (track.srclang) {\n textTrackDom += `srclang=\"${track.srclang}\" `\n }\n textTrackDom += `${track.default ? 'default' : ''}>`\n return true\n }\n })\n this.videoConfig.crossorigin = 'anonymous'\n }\n if (options.textTrackStyle) {\n let style = document.createElement('style')\n this.textTrackStyle = style\n document.head.appendChild(style)\n let styleStr = ''\n for (let index in options.textTrackStyle) {\n styleStr += `${index}: ${options.textTrackStyle[index]};`\n }\n let wrap = options.id ? `#${options.id}` : (options.el.id ? `#${options.el.id}` : `.${options.el.className}`)\n if (style.sheet.insertRule) {\n style.sheet.insertRule(`${wrap} video::cue { ${styleStr} }`, 0)\n } else if (style.sheet.addRule) {\n style.sheet.addRule(`${wrap} video::cue`, styleStr)\n }\n }\n let el = options.el ? options.el : findDom(document, `#${options.id}`)\n const XgVideoProxy = this.constructor.XgVideoProxy\n if(XgVideoProxy && this.videoConfig.mediaType === XgVideoProxy.mediaType) {\n this.video = new XgVideoProxy(el, options)\n } else {\n this.video = createDom(this.videoConfig.mediaType, textTrackDom, this.videoConfig, '')\n }\n if (options.videoStyle) {\n Object.keys(options.videoStyle).forEach(key => {\n setStyle(this.video, key, options.videoStyle[key])\n })\n }\n if (!this.textTrackShowDefault && textTrackDom) {\n let trackDoms = this.video.getElementsByTagName('Track')\n trackDoms[0].track.mode = 'hidden'\n }\n if (options.autoplay) {\n this.video.autoplay = true\n if (options.autoplayMuted) {\n this.video.muted = true\n }\n }\n\n this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked', 'progress', \n 'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'ratechange', 'loadedmetadata', 'loadeddata', 'loadstart'\n ].map((item) => {\n return {\n [item]: `on${item.charAt(0).toUpperCase()}${item.slice(1)}`\n }\n })\n EventEmitter(this)\n\n this._interval = {}\n let lastBuffer = '0,0'\n let self = this\n\n const defaultVideoEventHandler = name => {\n // fix when video destroy called and video reload\n if (!this) {\n return\n }\n if (name === 'play') {\n this.hasStart = true\n } else if (name === 'canplay') {\n removeClass(this.root, 'xgplayer-is-enter')\n } else if (name === 'waiting') {\n this.inWaitingStart = new Date().getTime()\n } else if (name === 'playing') {\n removeClass(this.root, 'xgplayer-is-enter')\n if (this.inWaitingStart) {\n this.inWaitingStart = undefined\n }\n }\n if (name === 'error') {\n // process the error\n this._onError(name)\n } else {\n this.emit(name, this)\n }\n\n if (this.hasOwnProperty('_interval')) {\n if (['ended', 'error', 'timeupdate'].indexOf(name) < 0) {\n _clearInterval(this, 'bufferedChange')\n _setInterval(this, 'bufferedChange', function () {\n if (this.video && this.video.buffered) {\n let curBuffer = []\n for (let i = 0, len = this.video.buffered.length; i < len; i++) {\n curBuffer.push([this.video.buffered.start(i), this.video.buffered.end(i)])\n }\n if (curBuffer.toString() !== lastBuffer) {\n lastBuffer = curBuffer.toString()\n this.emit('bufferedChange', curBuffer)\n }\n }\n }, 200)\n } else {\n if (name !== 'timeupdate') {\n _clearInterval(this, 'bufferedChange')\n }\n }\n }\n }\n\n const videoEventHandler = name => {\n if(options.videoEventMiddleware && typeof options.videoEventMiddleware[name] === 'function') {\n options.videoEventMiddleware[name].call(this, this, name, defaultVideoEventHandler)\n } else {\n defaultVideoEventHandler.call(this, name);\n }\n }\n\n this.ev.forEach(item => {\n self.evItem = Object.keys(item)[0]\n let name = Object.keys(item)[0]\n self.video.addEventListener(Object.keys(item)[0], videoEventHandler.bind(self, name))\n })\n }\n /**\n * 错误监听处理逻辑抽离\n */\n _onError (name) {\n if (this.video && this.video.error) {\n this.emit(name, new Errors('other', this.currentTime, this.duration, this.networkState, this.readyState, this.currentSrc, this.src,\n this.ended, {\n line: 162,\n msg: this.error,\n handle: 'Constructor'\n }, this.video.error.code, this.video.error))\n }\n }\n\n get hasStart () {\n return this._hasStart\n }\n set hasStart (bool) {\n if (typeof bool === 'boolean' && bool === true && !this._hasStart) {\n this._hasStart = true\n this.emit('hasstart')\n }\n }\n destroy () {\n if (this.textTrackStyle) {\n this.textTrackStyle.parentNode.removeChild(this.textTrackStyle)\n }\n }\n play () {\n return this.video.play()\n }\n pause () {\n this.video.pause()\n }\n canPlayType (type) {\n return this.video.canPlayType(type)\n }\n getBufferedRange (buffered) {\n let range = [0, 0]\n let video = this.video\n if(!buffered) buffered = video.buffered\n let currentTime = video.currentTime\n if (buffered) {\n for (let i = 0, len = buffered.length; i < len; i++) {\n range[0] = buffered.start(i)\n range[1] = buffered.end(i)\n if (range[0] <= currentTime && currentTime <= range[1]) {\n break\n }\n }\n }\n if (range[0] - currentTime <= 0 && currentTime - range[1] <= 0) {\n return range\n } else {\n return [0, 0]\n }\n }\n proxyOn (event, fn) {\n on(this, event, fn, 'destroy')\n }\n proxyOnce (event, fn) {\n once(this, event, fn, 'destroy')\n }\n set autoplay (isTrue) {\n if(this.video) {\n this.video.autoplay = isTrue\n }\n }\n get autoplay () {\n if(this.video) {\n return this.video.autoplay\n } else {\n return false\n }\n }\n get buffered () {\n if(this.video) {\n return this.video.buffered\n } else {\n return undefined\n }\n }\n get buffered2 () {\n return getBuffered2(this.video.buffered)\n }\n get crossOrigin () {\n if(this.video) {\n return this.video.crossOrigin\n } else {\n return false\n }\n }\n set crossOrigin (isTrue) {\n if(this.video) {\n this.video.crossOrigin = isTrue\n }\n }\n get currentSrc () {\n if(this.video) {\n return this.video.currentSrc\n } else {\n return undefined\n }\n }\n get currentTime () {\n if(this.video) {\n return this.video.currentTime || 0\n } else {\n return 0\n }\n }\n set currentTime (time) {\n if (typeof isFinite === 'function' && !isFinite(time)) return\n if (hasClass(this.root, 'xgplayer-ended')) {\n this.once('playing', () => { this.video.currentTime = time })\n this.replay()\n } else {\n this.video.currentTime = time\n }\n this.emit('currentTimeChange', time)\n }\n get defaultMuted () {\n if(this.video) {\n return this.video.defaultMuted\n } else {\n return false\n }\n }\n set defaultMuted (isTrue) {\n if(this.video) {\n this.video.defaultMuted = isTrue\n }\n }\n get duration () {\n if(this.config.duration) {\n if(this.video) return Math.min(this.config.duration, this.video.duration)\n else return this.config.duration\n }\n if (!this.video) return null\n return this.video.duration\n }\n get ended () {\n if(this.video) {\n return this.video.ended || false\n } else {\n return true\n }\n }\n get error () {\n let err = this.video.error\n if (!err) {\n return null\n }\n let status = [{\n en: 'MEDIA_ERR_ABORTED',\n cn: '取回过程被用户中止'\n }, {\n en: 'MEDIA_ERR_NETWORK',\n cn: '当下载时发生错误'\n }, {\n en: 'MEDIA_ERR_DECODE',\n cn: '当解码时发生错误'\n }, {\n en: 'MEDIA_ERR_SRC_NOT_SUPPORTED',\n cn: '不支持音频/视频'\n }]\n return this.lang ? this.lang[status[err.code - 1].en] : status[err.code - 1].en\n }\n get loop () {\n if(this.video) {\n return this.video.loop\n } else {\n return false\n }\n }\n set loop (isTrue) {\n if(this.video) {\n this.video.loop = isTrue\n }\n }\n get muted () {\n if(this.video) {\n return this.video.muted\n } else {\n return false\n }\n }\n set muted (isTrue) {\n if(this.video) {\n this.video.muted = isTrue\n }\n }\n get networkState () {\n let status = [{\n en: 'NETWORK_EMPTY',\n cn: '音频/视频尚未初始化'\n }, {\n en: 'NETWORK_IDLE',\n cn: '音频/视频是活动的且已选取资源,但并未使用网络'\n }, {\n en: 'NETWORK_LOADING',\n cn: '浏览器正在下载数据'\n }, {\n en: 'NETWORK_NO_SOURCE',\n cn: '未找到音频/视频来源'\n }]\n return this.lang ? this.lang[status[this.video.networkState].en] : status[this.video.networkState].en\n }\n get paused () {\n // if(this.video) {\n // return this.video.paused\n // } else {\n // return false\n // }\n return hasClass(this.root, 'xgplayer-pause')\n }\n get playbackRate () {\n if(this.video) {\n return this.video.playbackRate\n } else {\n return 1\n }\n }\n set playbackRate (rate) {\n if(this.video) {\n this.video.playbackRate = rate\n }\n }\n get played () {\n if(this.video) {\n return this.video.played\n } else {\n return undefined\n }\n }\n get preload () {\n if(this.video) {\n return this.video.preload\n } else {\n return false\n }\n }\n set preload (isTrue) {\n if(this.video) {\n this.video.preload = isTrue\n }\n }\n get readyState () {\n let status = [{\n en: 'HAVE_NOTHING',\n cn: '没有关于音频/视频是否就绪的信息'\n }, {\n en: 'HAVE_METADATA',\n cn: '关于音频/视频就绪的元数据'\n }, {\n en: 'HAVE_CURRENT_DATA',\n cn: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒'\n }, {\n en: 'HAVE_FUTURE_DATA',\n cn: '当前及至少下一帧的数据是可用的'\n }, {\n en: 'HAVE_ENOUGH_DATA',\n cn: '可用数据足以开始播放'\n }]\n return this.lang ? this.lang[status[this.video.readyState].en] : status[this.video.readyState]\n }\n get seekable () {\n if(this.video) {\n return this.video.seekable\n } else {\n return false\n }\n }\n get seeking () {\n if(this.video) {\n return this.video.seeking\n } else {\n return false\n }\n }\n get src () {\n if(this.video) {\n return this.video.src\n } else {\n return undefined\n }\n }\n set src (url) {\n if (!hasClass(this.root, 'xgplayer-ended')) {\n this.emit('urlchange', this.video.src)\n }\n removeClass(this.root, 'xgplayer-ended xgplayer-is-replay xgplayer-is-error')\n this.video.pause()\n this.emit('pause')\n this.video.src = url\n this.emit('srcChange')\n }\n set poster (posterUrl) {\n let poster = findDom(this.root, '.xgplayer-poster')\n if (poster) {\n poster.style.backgroundImage = `url(${posterUrl})`\n }\n }\n get volume () {\n if(this.video) {\n return this.video.volume\n } else {\n return 1\n }\n }\n set volume (vol) {\n if(this.video) {\n this.video.volume = vol\n }\n }\n get fullscreen () {\n return hasClass(this.root, 'xgplayer-is-fullscreen') || hasClass(this.root, 'xgplayer-fullscreen-active')\n }\n get bullet () {\n return findDom(this.root, 'xg-danmu') ? hasClass(findDom(this.root, 'xg-danmu'), 'xgplayer-has-danmu') : false\n }\n get textTrack () {\n return hasClass(this.root, 'xgplayer-is-textTrack')\n }\n get pip () {\n return hasClass(this.root, 'xgplayer-pip-active')\n }\n}\n\nexport default Proxy\n","import Proxy from './proxy'\nimport { util, deepCopy, findDom, createDom, addClass, typeOf, hasClass, removeClass, checkIsBrowser } from './utils/util'\nimport sniffer from './utils/sniffer'\nimport XgplayerTimeRange from './utils/xgplayerTimeRange'\nimport Errors from './error'\nimport allOff from 'event-emitter/all-off'\nimport s_i18n from './skin/controls/i18n.js'\nimport './skin/style/index.scss'\n\nimport {\n version\n} from '../version.json'\nclass Player extends Proxy {\n constructor (options) {\n super(options)\n this.config = deepCopy({\n width: 600,\n height: 337.5,\n ignores: [],\n whitelist: [],\n lang: (document.documentElement.getAttribute('lang') || navigator.language || 'zh-cn').toLocaleLowerCase(),\n inactive: 3000,\n volume: 0.6,\n controls: true,\n controlsList: ['nodownload']\n }, options)\n this.version = version\n this.userTimer = null\n this.waitTimer = null\n this.history = []\n this.isProgressMoving = false\n this.root = findDom(document, `#${this.config.id}`)\n this.controls = createDom('xg-controls', '', {\n unselectable: 'on',\n onselectstart: 'return false'\n }, 'xgplayer-controls')\n if (this.config.isShowControl) {\n this.controls.style.display = 'none'\n }\n if (!this.root) {\n let el = this.config.el\n if (el && el.nodeType === 1) {\n this.root = el\n } else {\n this.emit('error', new Errors({\n type: 'use',\n errd: {\n line: 45,\n handle: 'Constructor',\n msg: 'container id can\\'t be empty'\n },\n vid: this.config.vid\n }))\n console.error('container id can\\'t be empty')\n return false\n }\n }\n // this.rootBackup = copyDom(this.root)\n addClass(this.root, `xgplayer xgplayer-${sniffer.device} xgplayer-nostart xgplayer-pause ${this.config.controls ? '' : 'xgplayer-no-controls'}`)\n this.root.appendChild(this.controls)\n if (this.config.fluid) {\n this.root.style['max-width'] = '100%'\n this.root.style['width'] = '100%'\n this.root.style['height'] = '0'\n this.root.style['padding-top'] = `${this.config.height * 100 / this.config.width}%`\n\n this.video.style['position'] = 'absolute'\n this.video.style['top'] = '0'\n this.video.style['left'] = '0'\n } else {\n // this.root.style.width = `${this.config.width}px`\n // this.root.style.height = `${this.config.height}px`\n if (this.config.width) {\n if (typeof this.config.width !== 'number') {\n this.root.style.width = this.config.width\n } else {\n this.root.style.width = `${this.config.width}px`\n }\n }\n if (this.config.height) {\n if (typeof this.config.height !== 'number') {\n this.root.style.height = this.config.height\n } else {\n this.root.style.height = `${this.config.height}px`\n }\n }\n }\n if (this.config.execBeforePluginsCall) {\n this.config.execBeforePluginsCall.forEach(item => {\n item.call(this, this)\n })\n }\n if(!this.config.closeI18n) {\n Player.install(s_i18n.name, s_i18n.method)\n }\n if (this.config.controlStyle && typeOf(this.config.controlStyle) === 'String') {\n let self = this\n fetch(self.config.controlStyle, {\n method: 'GET',\n headers: {\n Accept: 'application/json'\n }\n }).then(function (res) {\n if (res.ok) {\n res.json().then(function (obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n self.config[prop] = obj[prop]\n }\n }\n self.pluginsCall()\n })\n }\n }).catch(function (err) {\n console.log('Fetch错误:' + err)\n })\n } else {\n this.pluginsCall()\n }\n if(this.config.controlPlugins) {\n Player.controlsRun(this.config.controlPlugins, this)\n }\n this.ev.forEach((item) => {\n let evName = Object.keys(item)[0]\n let evFunc = this[item[evName]]\n if (evFunc) {\n this.on(evName, evFunc)\n }\n });\n\n ['focus', 'blur'].forEach(item => {\n this.on(item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)])\n })\n let player = this\n this.mousemoveFunc = function () {\n player.emit('focus')\n if (!player.config.closeFocusVideoFocus) {\n player.video.focus()\n }\n }\n this.root.addEventListener('mousemove', this.mousemoveFunc)\n this.playFunc = function () {\n player.emit('focus')\n if (!player.config.closePlayVideoFocus) {\n player.video.focus()\n }\n }\n player.once('play', this.playFunc)\n\n this.getVideoSize = function () {\n if (this.video.videoWidth && this.video.videoHeight) {\n let containerSize = player.root.getBoundingClientRect()\n if (player.config.fitVideoSize === 'auto') {\n if (containerSize.width / containerSize.height > this.video.videoWidth / this.video.videoHeight) {\n player.root.style.height = `${this.video.videoHeight / this.video.videoWidth * containerSize.width}px`\n } else {\n player.root.style.width = `${this.video.videoWidth / this.video.videoHeight * containerSize.height}px`\n }\n } else if (player.config.fitVideoSize === 'fixWidth') {\n player.root.style.height = `${this.video.videoHeight / this.video.videoWidth * containerSize.width}px`\n } else if (player.config.fitVideoSize === 'fixHeight') {\n player.root.style.width = `${this.video.videoWidth / this.video.videoHeight * containerSize.height}px`\n }\n }\n }\n player.once('loadeddata', this.getVideoSize)\n\n setTimeout(() => {\n this.emit('ready')\n this.isReady = true\n }, 0)\n\n if (this.config.videoInit) {\n if (hasClass(this.root, 'xgplayer-nostart')) {\n this.start()\n }\n }\n if (player.config.rotate) {\n player.on('requestFullscreen', this.updateRotateDeg)\n player.on('exitFullscreen', this.updateRotateDeg)\n }\n\n function onDestroy () {\n player.root.removeEventListener('mousemove', player.mousemoveFunc)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n }\n\n attachVideo () {\n if(this.video && this.video.nodeType === 1) {\n this.root.insertBefore(this.video, this.root.firstChild)\n }\n setTimeout(() => {\n this.emit('complete')\n if(this.danmu && typeof this.danmu.resize === 'function') {\n this.danmu.resize()\n }\n }, 1)\n }\n\n start (url = this.config.url) {\n if(!this.video) return\n let player = this\n if (!url || url === '') {\n this.emit('urlNull')\n return\n }\n this.canPlayFunc = function () {\n player.off('canplay', player.canPlayFunc)\n let playPromise = player.video.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.then(function () {\n player.emit('autoplay started')\n }).catch(function () {\n player.emit('autoplay was prevented')\n addClass(player.root, 'xgplayer-is-autoplay')\n })\n }\n }\n if (typeOf(url) !== 'Array') {\n if (typeOf(url) === 'String' && url.indexOf('blob:') > -1 && url === this.video.src) {\n // 在Chromium环境下用mse url给video二次赋值会导致错误\n } else {\n this.video.src = url\n }\n } else {\n url.forEach(item => {\n this.video.appendChild(createDom('source', '', {\n src: `${item.src}`,\n type: `${item.type || ''}`\n }))\n })\n }\n if (this.config.autoplay) {\n if (sniffer.os.isPhone) {\n this.canPlayFunc()\n } else {\n this.on('canplay', this.canPlayFunc)\n }\n }\n if(!this.config.disableStartLoad) {\n this.video.load()\n }\n this.attachVideo()\n }\n\n reload () {\n this.video.load()\n this.reloadFunc = function () {\n // eslint-disable-next-line handle-callback-err\n let playPromise = this.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n this.once('loadeddata', this.reloadFunc)\n }\n\n destroy (isDelDom = true) {\n let player = this\n clearInterval(this.bulletResizeTimer)\n for (let k in this._interval) {\n clearInterval(this._interval[k])\n this._interval[k] = null\n }\n if (this.checkTimer) {\n clearInterval(this.checkTimer)\n }\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n this.ev.forEach((item) => {\n let evName = Object.keys(item)[0]\n let evFunc = this[item[evName]]\n if (evFunc) {\n this.off(evName, evFunc)\n }\n });\n if (this.loadeddataFunc) {\n this.off('loadeddata', this.loadeddataFunc)\n }\n if (this.reloadFunc) {\n this.off('loadeddata', this.reloadFunc)\n }\n if (this.replayFunc) {\n this.off('play', this.replayFunc)\n }\n if (this.playFunc) {\n this.off('play', this.playFunc)\n }\n if (this.getVideoSize) {\n this.off('loadeddata', this.getVideoSize)\n };\n ['focus', 'blur'].forEach(item => {\n this.off(item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)])\n })\n if (!this.config.keyShortcut || this.config.keyShortcut === 'on') {\n ['video', 'controls'].forEach(item => {\n if (this[item]) {\n this[item].removeEventListener('keydown', function (e) { player.onKeydown(e, player) })\n }\n })\n }\n\n function destroyFunc () {\n this.emit('destroy')\n // this.root.id = this.root.id + '_del'\n // parentNode.insertBefore(this.rootBackup, this.root)\n\n // fix video destroy https://stackoverflow.com/questions/3258587/how-to-properly-unload-destroy-a-video-element\n this.video.removeAttribute('src') // empty source\n this.video.load()\n if (isDelDom) {\n // parentNode.removeChild(this.root)\n this.root.innerHTML = ''\n let classNameList = this.root.className.split(' ')\n if (classNameList.length > 0) {\n this.root.className = classNameList.filter(name => name.indexOf('xgplayer') < 0).join(' ')\n } else {\n this.root.className = ''\n }\n }\n\n for (let k in this) {\n // if (k !== 'config') {\n delete this[k]\n // }\n }\n allOff(this)\n }\n\n if (!this.paused) {\n this.pause()\n this.once('pause', destroyFunc)\n } else {\n destroyFunc.call(this)\n }\n super.destroy()\n }\n\n replay () {\n let self = this\n let _replay = this._replay\n // ie9 bugfix\n removeClass(this.root, 'xgplayer-ended')\n if(sniffer.browser.indexOf('ie') > -1) {\n this.emit('play')\n this.emit('playing')\n }\n \n if (_replay && _replay instanceof Function) {\n _replay()\n } else {\n this.currentTime = 0\n // eslint-disable-next-line handle-callback-err\n let playPromise = this.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n }\n\n userGestureTrigEvent (name, param) {\n const defaultUserGestureEventHandler = (name, param) => {\n this.emit(name, param)\n }\n if(this.config.userGestureEventMiddleware && typeof this.config.userGestureEventMiddleware[name] === 'function') {\n this.config.userGestureEventMiddleware[name].call(this, this, name, param, defaultUserGestureEventHandler)\n } else {\n defaultUserGestureEventHandler.call(this, name, param);\n }\n }\n\n pluginsCall () {\n if(Player.plugins['s_i18n']) {\n Player.plugins['s_i18n'].call(this, this)\n }\n let self = this\n if (Player.plugins) {\n let ignores = this.config.ignores\n Object.keys(Player.plugins).forEach(name => {\n let descriptor = Player.plugins[name]\n if(!descriptor || typeof descriptor !== 'function'){\n console.warn('plugin name', name , 'is invalid')\n } else {\n if (!ignores.some(item => name === item || name === 's_' + item) && name !== 's_i18n') {\n if (['pc', 'tablet', 'mobile'].some(type => type === name)) {\n if (name === sniffer.device) {\n setTimeout(() => {\n // if destroyed, skip\n if (!self.video) return;\n descriptor.call(self, self)\n }, 0)\n }\n } else {\n descriptor.call(this, this)\n }\n }\n }\n })\n }\n }\n\n onFocus () {\n let player = this\n if(hasClass(this.root, 'xgplayer-inactive')) {\n player.emit('controlShow')\n }\n removeClass(this.root, 'xgplayer-inactive')\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n player.userTimer = setTimeout(function () {\n player.emit('blur')\n }, player.config.inactive)\n }\n\n onBlur () {\n // this.video.blur()\n if ((this.config.enablePausedInactive || !this.paused) && !this.ended && !this.config.closeInactive) {\n if(!hasClass(this.root, 'xgplayer-inactive')) {\n this.emit('controlHide')\n }\n addClass(this.root, 'xgplayer-inactive')\n }\n }\n\n onPlay () {\n addClass(this.root, 'xgplayer-isloading')\n addClass(this.root, 'xgplayer-playing')\n removeClass(this.root, 'xgplayer-pause')\n }\n\n onPause () {\n addClass(this.root, 'xgplayer-pause')\n if (this.userTimer) {\n clearTimeout(this.userTimer)\n }\n this.emit('focus')\n }\n\n onEnded () {\n addClass(this.root, 'xgplayer-ended')\n removeClass(this.root, 'xgplayer-playing')\n }\n\n onSeeking () {\n this.isSeeking = true\n // 兼容IE下无法触发waiting事件的问题 seeking的时候直接出发waiting\n this.onWaiting()\n // addClass(this.root, 'seeking');\n }\n\n // onTimeupdate () {\n // // for ie,playing fired before waiting\n // if (this.waitTimer) {\n // clearTimeout(this.waitTimer)\n // }\n // removeClass(this.root, 'xgplayer-isloading')\n\n // }\n\n onSeeked () {\n // for ie,playing fired before waiting\n this.once('timeupdate', () => {\n this.isSeeking = false\n })\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n removeClass(this.root, 'xgplayer-isloading')\n }\n\n onWaiting () {\n let self = this\n if (self.waitTimer) {\n clearTimeout(self.waitTimer)\n }\n if (self.checkTimer) {\n clearInterval(self.checkTimer)\n self.checkTimer = null\n }\n let time = self.currentTime\n self.waitTimer = setTimeout(function () {\n addClass(self.root, 'xgplayer-isloading')\n self.checkTimer = setInterval(function () {\n if (self.currentTime !== time) {\n removeClass(self.root, 'xgplayer-isloading')\n clearInterval(self.checkTimer)\n self.checkTimer = null\n }\n }, 1000)\n }, 500)\n }\n\n onPlaying () {\n // 兼容safari下无法自动播放会触发该事件的场景\n if (this.paused) {\n return\n }\n this.isSeeking = false\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n removeClass(this.root, 'xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay')\n addClass(this.root, 'xgplayer-playing')\n }\n\n static install (name, descriptor) {\n if (!checkIsBrowser()) {\n return\n }\n if (!Player.plugins) {\n Player.plugins = {}\n }\n if (!Player.plugins[name]) {\n Player.plugins[name] = descriptor\n }\n }\n\n static installAll (list) {\n for(let k = 0; k < list.length; k++){\n Player.install(list[k].name, list[k].method)\n }\n }\n\n static use (name, descriptor) {\n if (!Player.plugins) {\n Player.plugins = {}\n }\n Player.plugins[name] = descriptor\n }\n\n static useAll (list) {\n for (let k in list) {\n Player.use(list[k].name, list[k].method)\n }\n }\n\n static controlsRun (controlLst, context) {\n controlLst.forEach(function(control) {\n control.method.call(context)\n })\n }\n}\n\nPlayer.util = util\nPlayer.sniffer = sniffer\nPlayer.Errors = Errors\nPlayer.XgplayerTimeRange = XgplayerTimeRange\n\nexport default Player\n","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","export default class XgplayerTimeRange {\n constructor(bufferedList) {\n this.bufferedList = bufferedList\n }\n\n start (index) {\n return this.bufferedList[index].start\n }\n\n end (index) {\n return this.bufferedList[index].end\n }\n\n get length () {\n return this.bufferedList.length\n }\n}\n","import { typeOf } from '../../utils/util'\n\nlet s_i18n = function () {\n let player = this; let lang = {};\n lang.en = {\n HAVE_NOTHING: 'There is no information on whether audio/video is ready',\n HAVE_METADATA: 'Audio/video metadata is ready ',\n HAVE_CURRENT_DATA: 'Data about the current play location is available, but there is not enough data to play the next frame/millisecond',\n HAVE_FUTURE_DATA: 'Current and at least one frame of data is available',\n HAVE_ENOUGH_DATA: 'The available data is sufficient to start playing',\n NETWORK_EMPTY: 'Audio/video has not been initialized',\n NETWORK_IDLE: 'Audio/video is active and has been selected for resources, but no network is used',\n NETWORK_LOADING: 'The browser is downloading the data',\n NETWORK_NO_SOURCE: 'No audio/video source was found',\n MEDIA_ERR_ABORTED: 'The fetch process is aborted by the user',\n MEDIA_ERR_NETWORK: 'An error occurred while downloading',\n MEDIA_ERR_DECODE: 'An error occurred while decoding',\n MEDIA_ERR_SRC_NOT_SUPPORTED: 'Audio/video is not supported',\n REPLAY: 'Replay',\n ERROR: 'Network is offline',\n PLAY_TIPS: 'Play',\n PAUSE_TIPS: 'Pause',\n PLAYNEXT_TIPS: 'Play next',\n DOWNLOAD_TIPS: 'Download',\n ROTATE_TIPS: 'Rotate',\n RELOAD_TIPS: 'Reload',\n FULLSCREEN_TIPS: \"Fullscreen\",\n EXITFULLSCREEN_TIPS: 'Exit fullscreen',\n CSSFULLSCREEN_TIPS: 'Cssfullscreen',\n EXITCSSFULLSCREEN_TIPS: 'Exit cssfullscreen',\n TEXTTRACK: 'Caption',\n PIP: 'Pip',\n MINIPLAYER: 'Miniplayer',\n SCREENSHOT: 'Screenshot',\n LIVE: 'LIVE',\n OFF: 'Off',\n MINIPLAYER_DRAG: 'Click and hold to drag',\n AIRPLAY_TIPS: 'Airplay',\n }\n lang['zh-cn'] = {\n HAVE_NOTHING: '没有关于音频/视频是否就绪的信息',\n HAVE_METADATA: '音频/视频的元数据已就绪',\n HAVE_CURRENT_DATA: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒',\n HAVE_FUTURE_DATA: '当前及至少下一帧的数据是可用的',\n HAVE_ENOUGH_DATA: '可用数据足以开始播放',\n NETWORK_EMPTY: '音频/视频尚未初始化',\n NETWORK_IDLE: '音频/视频是活动的且已选取资源,但并未使用网络',\n NETWORK_LOADING: '浏览器正在下载数据',\n NETWORK_NO_SOURCE: '未找到音频/视频来源',\n MEDIA_ERR_ABORTED: '取回过程被用户中止',\n MEDIA_ERR_NETWORK: '当下载时发生错误',\n MEDIA_ERR_DECODE: '当解码时发生错误',\n MEDIA_ERR_SRC_NOT_SUPPORTED: '不支持的音频/视频格式',\n REPLAY: '重播',\n ERROR: '网络连接似乎出现了问题',\n PLAY_TIPS: '播放',\n PAUSE_TIPS: '暂停',\n PLAYNEXT_TIPS: '下一集',\n DOWNLOAD_TIPS: '下载',\n ROTATE_TIPS: '旋转',\n RELOAD_TIPS: '重新载入',\n FULLSCREEN_TIPS: \"进入全屏\",\n EXITFULLSCREEN_TIPS: '退出全屏',\n CSSFULLSCREEN_TIPS: '进入样式全屏',\n EXITCSSFULLSCREEN_TIPS: '退出样式全屏',\n TEXTTRACK: '字幕',\n PIP: '画中画',\n MINIPLAYER: '迷你播放器',\n SCREENSHOT: '截图',\n LIVE: '正在直播',\n OFF: '关闭',\n MINIPLAYER_DRAG: '点击按住可拖动视频',\n AIRPLAY_TIPS: '隔空播放',\n }\n lang['zh-hk'] = {\n HAVE_NOTHING: '沒有關於音頻/視頻是否就緒的信息',\n HAVE_METADATA: '音頻/視頻的元數據已就緒',\n HAVE_CURRENT_DATA: '關於當前播放位置的數據是可用的,但沒有足夠的數據來播放下壹幀/毫秒',\n HAVE_FUTURE_DATA: '當前及至少下壹幀的數據是可用的',\n HAVE_ENOUGH_DATA: '可用數據足以開始播放',\n NETWORK_EMPTY: '音頻/視頻尚未初始化',\n NETWORK_IDLE: '音頻/視頻是活動的且已選取資源,但並未使用網絡',\n NETWORK_LOADING: '瀏覽器正在下載數據',\n NETWORK_NO_SOURCE: '未找到音頻/視頻來源',\n MEDIA_ERR_ABORTED: '取回過程被用戶中止',\n MEDIA_ERR_NETWORK: '當下載時發生錯誤',\n MEDIA_ERR_DECODE: '當解碼時發生錯誤',\n MEDIA_ERR_SRC_NOT_SUPPORTED: '不支持的音頻/視頻格式',\n REPLAY: '重播',\n ERROR: '網絡連接似乎出現了問題',\n PLAY_TIPS: '播放',\n PAUSE_TIPS: '暫停',\n PLAYNEXT_TIPS: '下壹集',\n DOWNLOAD_TIPS: '下載',\n ROTATE_TIPS: '旋轉',\n RELOAD_TIPS: '重新載入',\n FULLSCREEN_TIPS: \"進入全屏\",\n EXITFULLSCREEN_TIPS: '退出全屏',\n CSSFULLSCREEN_TIPS: '進入樣式全屏',\n EXITCSSFULLSCREEN_TIPS: '退出樣式全屏',\n TEXTTRACK: '字幕',\n PIP: '畫中畫',\n MINIPLAYER: '迷妳播放器',\n SCREENSHOT: '截圖',\n LIVE: '正在直播',\n OFF: '關閉',\n MINIPLAYER_DRAG: '點擊按住可拖動視頻',\n AIRPLAY_TIPS: '隔空播放',\n }\n lang['jp'] = {\n HAVE_NOTHING: 'オーディオ/ビデオが準備できているか情報がありません',\n HAVE_METADATA: 'オーディオ/ビデオのメタデータは準備できています',\n HAVE_CURRENT_DATA: '現在の再生位置に関するデータは利用可能ですが、次のフレーム/ミリ秒を再生するのに十分なデータがありません',\n HAVE_FUTURE_DATA: '現在、少なくとも次のフレームのデータが利用可能です',\n HAVE_ENOUGH_DATA: '利用可能なデータは再生を開始するのに十分です',\n NETWORK_EMPTY: 'オーディオ/ビデオが初期化されていません',\n NETWORK_IDLE: 'オーディオ/ビデオはアクティブでリソースが選択されていますが、ネットワークが使用されていません',\n NETWORK_LOADING: 'ブラウザーはデータをダウンロードしています',\n NETWORK_NO_SOURCE: 'オーディオ/ビデオ のソースが見つかりません',\n MEDIA_ERR_ABORTED: 'ユーザーによってフェッチプロセスが中止されました',\n MEDIA_ERR_NETWORK: 'ダウンロード中にエラーが発生しました',\n MEDIA_ERR_DECODE: 'デコード中にエラーが発生しました',\n MEDIA_ERR_SRC_NOT_SUPPORTED: 'オーディオ/ビデオ の形式がサポートされていません',\n REPLAY: 'リプレイ',\n ERROR: 'ネットワークの接続に問題が発生しました',\n PLAY_TIPS: 'プレイ',\n PAUSE_TIPS: '一時停止',\n PLAYNEXT_TIPS: '次をプレイ',\n DOWNLOAD_TIPS: 'ダウンロード',\n ROTATE_TIPS: '回転',\n RELOAD_TIPS: '再読み込み',\n FULLSCREEN_TIPS: \"フルスクリーン\",\n EXITFULLSCREEN_TIPS: 'フルスクリーンを終了',\n CSSFULLSCREEN_TIPS: 'シアターモード',\n EXITCSSFULLSCREEN_TIPS: 'シアターモードを終了',\n TEXTTRACK: '字幕',\n PIP: 'ミニプレーヤー',\n MINIPLAYER: 'ミニプレーヤー',\n SCREENSHOT: 'スクリーンショット',\n LIVE: '生放送',\n OFF: 'オフ',\n MINIPLAYER_DRAG: 'ボタンを押して働画をドラッグする',\n AIRPLAY_TIPS: '隔空放送',\n }\n\n Object.defineProperty(player, 'lang', {\n get: function () {\n if (player.config) {\n return lang[player.config.lang] || lang['en']\n } else {\n return lang['en']\n }\n },\n set: function (value) {\n if (typeOf(value) === 'Object') {\n Object.keys(value).forEach(key => {\n lang[key] = value[key]\n })\n }\n }\n })\n\n}\n\nexport default {\n name: 's_i18n',\n method: s_i18n\n}","\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n","'use strict';\n\nvar d = require('d')\n , callable = require('es5-ext/object/valid-callable')\n\n , apply = Function.prototype.apply, call = Function.prototype.call\n , create = Object.create, defineProperty = Object.defineProperty\n , defineProperties = Object.defineProperties\n , hasOwnProperty = Object.prototype.hasOwnProperty\n , descriptor = { configurable: true, enumerable: false, writable: true }\n\n , on, once, off, emit, methods, descriptors, base;\n\non = function (type, listener) {\n\tvar data;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) {\n\t\tdata = descriptor.value = create(null);\n\t\tdefineProperty(this, '__ee__', descriptor);\n\t\tdescriptor.value = null;\n\t} else {\n\t\tdata = this.__ee__;\n\t}\n\tif (!data[type]) data[type] = listener;\n\telse if (typeof data[type] === 'object') data[type].push(listener);\n\telse data[type] = [data[type], listener];\n\n\treturn this;\n};\n\nonce = function (type, listener) {\n\tvar once, self;\n\n\tcallable(listener);\n\tself = this;\n\ton.call(this, type, once = function () {\n\t\toff.call(self, type, once);\n\t\tapply.call(listener, this, arguments);\n\t});\n\n\tonce.__eeOnceListener__ = listener;\n\treturn this;\n};\n\noff = function (type, listener) {\n\tvar data, listeners, candidate, i;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return this;\n\tdata = this.__ee__;\n\tif (!data[type]) return this;\n\tlisteners = data[type];\n\n\tif (typeof listeners === 'object') {\n\t\tfor (i = 0; (candidate = listeners[i]); ++i) {\n\t\t\tif ((candidate === listener) ||\n\t\t\t\t\t(candidate.__eeOnceListener__ === listener)) {\n\t\t\t\tif (listeners.length === 2) data[type] = listeners[i ? 0 : 1];\n\t\t\t\telse listeners.splice(i, 1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ((listeners === listener) ||\n\t\t\t\t(listeners.__eeOnceListener__ === listener)) {\n\t\t\tdelete data[type];\n\t\t}\n\t}\n\n\treturn this;\n};\n\nemit = function (type) {\n\tvar i, l, listener, listeners, args;\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return;\n\tlisteners = this.__ee__[type];\n\tif (!listeners) return;\n\n\tif (typeof listeners === 'object') {\n\t\tl = arguments.length;\n\t\targs = new Array(l - 1);\n\t\tfor (i = 1; i < l; ++i) args[i - 1] = arguments[i];\n\n\t\tlisteners = listeners.slice();\n\t\tfor (i = 0; (listener = listeners[i]); ++i) {\n\t\t\tapply.call(listener, this, args);\n\t\t}\n\t} else {\n\t\tswitch (arguments.length) {\n\t\tcase 1:\n\t\t\tcall.call(listeners, this);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tcall.call(listeners, this, arguments[1]);\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tcall.call(listeners, this, arguments[1], arguments[2]);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tl = arguments.length;\n\t\t\targs = new Array(l - 1);\n\t\t\tfor (i = 1; i < l; ++i) {\n\t\t\t\targs[i - 1] = arguments[i];\n\t\t\t}\n\t\t\tapply.call(listeners, this, args);\n\t\t}\n\t}\n};\n\nmethods = {\n\ton: on,\n\tonce: once,\n\toff: off,\n\temit: emit\n};\n\ndescriptors = {\n\ton: d(on),\n\tonce: d(once),\n\toff: d(off),\n\temit: d(emit)\n};\n\nbase = defineProperties({}, descriptors);\n\nmodule.exports = exports = function (o) {\n\treturn (o == null) ? create(base) : defineProperties(Object(o), descriptors);\n};\nexports.methods = methods;\n","'use strict';\n\nvar value = require('es5-ext/object/valid-object')\n\n , hasOwnProperty = Object.prototype.hasOwnProperty;\n\nmodule.exports = function (emitter/*, type*/) {\n\tvar type = arguments[1], data;\n\n\tvalue(emitter);\n\n\tif (type !== undefined) {\n\t\tdata = hasOwnProperty.call(emitter, '__ee__') && emitter.__ee__;\n\t\tif (!data) return;\n\t\tif (data[type]) delete data[type];\n\t\treturn;\n\t}\n\tif (hasOwnProperty.call(emitter, '__ee__')) delete emitter.__ee__;\n};\n","import { hasClass } from '../utils/util'\n\nlet mobile = function () {\n let player = this\n let root = player.root\n let clk = 0; let _click_\n let clickedTime = {\n first: '',\n second: ''\n }\n\n player.onElementTouchend = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (hasClass(root, 'xgplayer-inactive')) {\n player.emit('focus')\n } else {\n player.emit('blur')\n }\n if (!player.config.closeVideoTouch && !player.isTouchMove) {\n function onTouch() {\n _click_ = setTimeout(function () {\n if (hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n clk = 0\n }, 200)\n }\n if (!player.config.closeVideoClick) {\n clk++\n if (_click_) {\n clearTimeout(_click_)\n }\n if (clk === 1) {\n if(player.config.enableVideoDbltouch) {\n clickedTime.first = new Date()\n } else {\n onTouch()\n }\n } else if (clk === 2) {\n if(player.config.enableVideoDbltouch) {\n clickedTime.second = new Date()\n if (Math.abs(clickedTime.first - clickedTime.second) < 400) {\n // 双击\n onTouch()\n } else {\n clickedTime.first = new Date()\n clk = 1\n }\n } else {\n clk = 0\n }\n } else {\n clk = 0\n }\n }\n }\n }\n\n function onReady (e) {\n player.video.addEventListener('touchend', function (e) {\n player.onElementTouchend(e, player.video)\n })\n player.video.addEventListener('touchstart', () => {\n player.isTouchMove = false\n })\n player.video.addEventListener('touchmove', () => {\n player.isTouchMove = true\n })\n if (player.config.autoplay) {\n player.start()\n }\n }\n player.once('ready', onReady)\n\n function onDestroy () {\n player.off('ready', onReady)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'mobile',\n method: mobile\n}","import { hasClass } from '../utils/util'\n\nlet pc = function () {\n let player = this\n if(!player.controls || !player.video) return\n let controls = player.controls; let root = player.root\n let clk = 0; let _click_\n\n player.onElementClick = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (!player.config.closeVideoClick) {\n clk++\n if (_click_) {\n clearTimeout(_click_)\n }\n if (clk === 1) {\n _click_ = setTimeout(function () {\n if (hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n clk = 0\n }, 200)\n } else {\n clk = 0\n }\n }\n }\n player.video.addEventListener('click', function (e) { player.onElementClick(e, player.video) }, false)\n\n player.onElementDblclick = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (!player.config.closeVideoDblclick) {\n let fullscreen = controls.querySelector('.xgplayer-fullscreen')\n if (fullscreen) {\n let clk\n if (document.createEvent) {\n clk = document.createEvent('Event')\n clk.initEvent('click', true, true)\n } else {\n clk = new Event('click')\n }\n fullscreen.dispatchEvent(clk)\n }\n }\n }\n player.video.addEventListener('dblclick', function (e) { player.onElementDblclick(e, player.video) }, false)\n\n function onMouseEnter () {\n clearTimeout(player.leavePlayerTimer)\n player.emit('focus', player)\n }\n root.addEventListener('mouseenter', onMouseEnter)\n\n function onMouseLeave () {\n if(!player.config.closePlayerBlur) {\n player.leavePlayerTimer = setTimeout(function () {\n player.emit('blur', player)\n }, player.config.leavePlayerTime || 0)\n }\n }\n root.addEventListener('mouseleave', onMouseLeave)\n\n function onControlMouseEnter (e) {\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n }\n controls.addEventListener('mouseenter', onControlMouseEnter)\n\n function onControlMouseLeave (e) {\n if(!player.config.closeControlsBlur) {\n player.emit('focus', player)\n }\n }\n controls.addEventListener('mouseleave', onControlMouseLeave)\n\n function onControlClick (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n controls.addEventListener('click', onControlClick)\n\n function onReady (e) {\n if (player.config.autoplay) {\n player.start()\n }\n }\n player.once('ready', onReady)\n\n function onDestroy () {\n root.removeEventListener('mouseenter', onMouseEnter)\n root.removeEventListener('mouseleave', onMouseLeave)\n player.off('ready', onReady)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'pc',\n method: pc\n}","import { addClass, hasClass, removeClass } from '../utils/util'\n\nlet start = function () {\n let player = this\n let root = player.root\n\n function onCanPlay () {\n player.off('canplay', onCanPlay)\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n\n function onStartBtnClick () {\n if (hasClass(root, 'xgplayer-nostart')) {\n removeClass(root, 'xgplayer-nostart') // for ie quick switch\n addClass(root, 'xgplayer-is-enter')\n\n if(typeof root.contains === 'function') {\n if((player.video && player.video.nodeType === 1 && !root.contains(player.video)) || (player.video && player.video.nodeType !== 1 && player.video.mediaSource === undefined)) {\n player.once('canplay', onCanPlay)\n player.start()\n } else {\n onCanPlay()\n }\n } else {\n if((player.video && player.video.nodeType === 1 && !root.querySelector(this.videoConfig.mediaType)) || (player.video && player.video.nodeType !== 1 && player.video.mediaSource === undefined)) {\n player.once('canplay', onCanPlay)\n player.start()\n } else {\n onCanPlay()\n }\n }\n } else {\n if (player.paused) {\n removeClass(root, 'xgplayer-nostart xgplayer-isloading')\n setTimeout(() => {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }, 10)\n }\n }\n }\n player.on('startBtnClick', onStartBtnClick)\n\n function onDestroy () {\n player.off('startBtnClick', onStartBtnClick)\n player.off('canplay', onCanPlay)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'start',\n method: start\n}","import { createDom, addClass, removeClass, isWeiXin, isUc } from '../../utils/util'\nimport StartPlayIcon from '../assets/startPlay.svg'\nimport StartPauseIcon from '../assets/startPause.svg'\nimport '../style/controls/start.scss'\n\nlet s_start = function () {\n let player = this\n let root = player.root\n let btn = createDom('xg-start', `<div class=\"xgplayer-icon-play\">${StartPlayIcon}</div>\n <div class=\"xgplayer-icon-pause\">${StartPauseIcon}</div>`, {}, 'xgplayer-start')\n function onPlayerReady(player) {\n addClass(player.root, 'xgplayer-skin-default')\n if (player.config) {\n player.config.autoplay && !isWeiXin() && !isUc() && addClass(player.root, 'xgplayer-is-enter')\n if (player.config.lang && player.config.lang === 'en') {\n addClass(player.root, 'xgplayer-lang-is-en')\n } else if (player.config.lang === 'jp') {\n addClass(player.root, 'xgplayer-lang-is-jp')\n }\n if(!player.config.enableContextmenu) {\n player.video.addEventListener('contextmenu', e => {\n e.preventDefault()\n e.stopPropagation()\n })\n }\n }\n }\n\n if(player.config && player.config.hideStartBtn) {\n addClass(root, 'xgplayer-start-hide')\n }\n\n if (player.isReady) {\n root.appendChild(btn)\n onPlayerReady(player)\n } else {\n player.once('ready', () => {\n root.appendChild(btn)\n onPlayerReady(player)\n });\n }\n\n player.once('autoplay was prevented', () => {\n removeClass(player.root, 'xgplayer-is-enter')\n addClass(player.root, 'xgplayer-nostart')\n })\n\n player.once('canplay', () => {\n removeClass(player.root, 'xgplayer-is-enter')\n })\n\n btn.onclick = e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('startBtnClick')\n }\n}\n\nexport default {\n name: 's_start',\n method: s_start\n}","\"use strict\";\n\nvar isValue = require(\"type/value/is\")\n , isPlainFunction = require(\"type/plain-function/is\")\n , assign = require(\"es5-ext/object/assign\")\n , normalizeOpts = require(\"es5-ext/object/normalize-options\")\n , contains = require(\"es5-ext/string/#/contains\");\n\nvar d = (module.exports = function (dscr, value/*, options*/) {\n\tvar c, e, w, options, desc;\n\tif (arguments.length < 2 || typeof dscr !== \"string\") {\n\t\toptions = value;\n\t\tvalue = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[2];\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t\tw = contains.call(dscr, \"w\");\n\t} else {\n\t\tc = w = true;\n\t\te = false;\n\t}\n\n\tdesc = { value: value, configurable: c, enumerable: e, writable: w };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n});\n\nd.gs = function (dscr, get, set/*, options*/) {\n\tvar c, e, options, desc;\n\tif (typeof dscr !== \"string\") {\n\t\toptions = set;\n\t\tset = get;\n\t\tget = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[3];\n\t}\n\tif (!isValue(get)) {\n\t\tget = undefined;\n\t} else if (!isPlainFunction(get)) {\n\t\toptions = get;\n\t\tget = set = undefined;\n\t} else if (!isValue(set)) {\n\t\tset = undefined;\n\t} else if (!isPlainFunction(set)) {\n\t\toptions = set;\n\t\tset = undefined;\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t} else {\n\t\tc = true;\n\t\te = false;\n\t}\n\n\tdesc = { get: get, set: set, configurable: c, enumerable: e };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n","\"use strict\";\n\nvar isFunction = require(\"../function/is\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n","\"use strict\";\n\nvar isPrototype = require(\"../prototype/is\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n","\"use strict\";\n\nvar isObject = require(\"../object/is\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) return false;\n\ttry {\n\t\tif (!value.constructor) return false;\n\t\treturn value.constructor.prototype === value;\n\t} catch (error) {\n\t\treturn false;\n\t}\n};\n","\"use strict\";\n\nvar isValue = require(\"../value/is\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.assign : require(\"./shim\");\n","\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n","\"use strict\";\n\nvar keys = require(\"../keys\")\n , value = require(\"../valid-value\")\n , max = Math.max;\n\nmodule.exports = function (dest, src/*, …srcn*/) {\n\tvar error, i, length = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry {\n\t\t\tdest[key] = src[key];\n\t\t} catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < length; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.keys : require(\"./shim\");\n","\"use strict\";\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys(\"primitive\");\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n","\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n","\"use strict\";\n\n// eslint-disable-next-line no-empty-function\nmodule.exports = function () {};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n\treturn value;\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar forEach = Array.prototype.forEach, create = Object.create;\n\nvar process = function (src, obj) {\n\tvar key;\n\tfor (key in src) obj[key] = src[key];\n};\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function (opts1/*, …options*/) {\n\tvar result = create(null);\n\tforEach.call(arguments, function (options) {\n\t\tif (!isValue(options)) return;\n\t\tprocess(Object(options), result);\n\t});\n\treturn result;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? String.prototype.contains : require(\"./shim\");\n","\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n","\"use strict\";\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString/*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n","\"use strict\";\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n","\"use strict\";\n\nvar isObject = require(\"./is-object\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n\treturn value;\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/lib/index.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/lib/index.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!../../../node_modules/postcss-loader/lib/index.js!../../../node_modules/sass-loader/lib/loader.js!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default{background:#000;width:100%;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.xgplayer-skin-default *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.xgplayer-skin-default.xgplayer-rotate-fullscreen{position:absolute;top:0;left:100%;bottom:0;right:0;height:100vw!important;width:100vh!important;-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.xgplayer-skin-default.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer-skin-default.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer-skin-default video{width:100%;height:100%;outline:none}.xgplayer-skin-default .xgplayer-none{display:none}@-webkit-keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}.xgplayer-skin-default .xgplayer-controls{display:-webkit-flex;display:-moz-box;display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.37),rgba(0,0,0,.75),rgba(0,0,0,.75));z-index:10}.xgplayer-skin-default.xgplayer-inactive .xgplayer-controls,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-progress,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-time,.xgplayer-skin-default.xgplayer-no-controls .xgplayer-controls,.xgplayer-skin-default.xgplayer-nostart .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-live{display:block}.xgplayer-skin-default .xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;-webkit-order:1;-moz-box-ordinal-group:2;order:1}.xgplayer-skin-default .xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-skin-default .xgplayer-icon svg{position:absolute}.xgplayer-skin-default .xgplayer-tips{background:rgba(0,0,0,.54);border-radius:1px;display:none;position:absolute;font-family:PingFangSC-Regular;font-size:11px;color:#fff;padding:2px 4px;text-align:center;top:-30px;left:50%;margin-left:-16px;width:auto;white-space:nowrap}.xgplayer-skin-default.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-skin-default .xgplayer-screen-container{display:block;width:100%}\", \"\"]);\n\n// exports\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./start.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./start.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./start.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-start{border-radius:50%;display:inline-block;width:70px;height:70px;background:rgba(0,0,0,.38);overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:115;margin:-35px auto auto -35px;cursor:pointer}.xgplayer-skin-default .xgplayer-start div{position:absolute}.xgplayer-skin-default .xgplayer-start div svg{fill:hsla(0,0%,100%,.7)}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-start:hover{opacity:.85}.xgplayer-skin-default.xgplayer-pause.xgplayer-start-hide .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-start-hide .xgplayer-start{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start{display:inline-block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start,.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-pause{display:none}\", \"\"]);\n\n// exports\n","import { hasClass, addClass, removeClass, PresentationMode, checkWebkitSetPresentationMode } from '../utils/util'\n\nlet fullscreen = function () {\n let player = this\n let root = player.root\n\n function onFullscreenBtnClick () {\n if (player.config.rotateFullscreen) {\n if (hasClass(root, 'xgplayer-rotate-fullscreen')) {\n player.exitRotateFullscreen()\n } else {\n player.getRotateFullscreen()\n }\n } else {\n if (hasClass(root, 'xgplayer-is-fullscreen')) {\n player.exitFullscreen(root)\n } else {\n player.getFullscreen(root)\n }\n }\n }\n player.on('fullscreenBtnClick', onFullscreenBtnClick)\n\n function onFullscreenChange () {\n let fullscreenEl = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement\n if (fullscreenEl && fullscreenEl === root) {\n addClass(root, 'xgplayer-is-fullscreen')\n player.emit('requestFullscreen')\n } else if (hasClass(root, 'xgplayer-is-fullscreen')) {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n }\n if (player.danmu && typeof player.danmu.resize === 'function') {\n player.danmu.resize()\n }\n };\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.addEventListener(item, onFullscreenChange)\n })\n\n player.video.addEventListener('webkitbeginfullscreen', function () {\n addClass(root, 'xgplayer-is-fullscreen')\n player.emit('requestFullscreen')\n })\n\n player.video.addEventListener('webkitendfullscreen', function () {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n })\n\n function onWebkitpresentationmodechanged (e) {\n const mode = player.video.webkitPresentationMode\n // 非全屏模式 退出全屏\n if (mode !== PresentationMode.FULLSCREEN) {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n }\n }\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.addEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n function onDestroy () {\n player.off('fullscreenBtnClick', onFullscreenBtnClick);\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.removeEventListener(item, onFullscreenChange)\n })\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.removeEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getFullscreen = function (el) {\n let player = this\n if (el.requestFullscreen) {\n let fullscreenPromise = el.requestFullscreen()\n if (fullscreenPromise) {\n fullscreenPromise.catch(function () {\n player.emit('fullscreen error')\n })\n }\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen()\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen(window.Element.ALLOW_KEYBOARD_INPUT)\n } else if (player.video.webkitSupportsFullscreen) {\n player.video.webkitEnterFullscreen()\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen()\n } else {\n addClass(el, 'xgplayer-is-cssfullscreen')\n }\n }\n\n player.exitFullscreen = function (el) {\n if (document.exitFullscreen) {\n document.exitFullscreen()\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen()\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen()\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen()\n }\n removeClass(el, 'xgplayer-is-cssfullscreen')\n }\n\n player.getRotateFullscreen = function () {\n let player = this\n document.documentElement.style.width = '100%'\n document.documentElement.style.height = '100%'\n if (player.config.fluid) {\n player.root.style['padding-top'] = ''\n player.root.style['max-width'] = 'unset'\n }\n if (player.root && !hasClass(player.root, 'xgplayer-rotate-fullscreen')) {\n addClass(player.root, 'xgplayer-rotate-fullscreen')\n }\n player.emit('getRotateFullscreen')\n }\n\n player.exitRotateFullscreen = function () {\n let player = this\n document.documentElement.style.width = 'unset'\n document.documentElement.style.height = 'unset'\n if (player.config.fluid) {\n player.root.style['width'] = '100%'\n player.root.style['height'] = '0'\n player.root.style['padding-top'] = `${player.config.height * 100 / player.config.width}%`\n player.root.style['max-width'] = '100%'\n }\n if (player.root && hasClass(player.root, 'xgplayer-rotate-fullscreen')) {\n removeClass(player.root, 'xgplayer-rotate-fullscreen')\n }\n player.emit('exitRotateFullscreen')\n }\n}\n\nexport default {\n name: 'fullscreen',\n method: fullscreen\n}\n","import { hasClass } from '../utils/util'\n\nlet play = function () {\n let player = this\n\n function onPlayBtnClick () {\n if (!player.config.allowPlayAfterEnded && player.ended) {\n return\n }\n if(hasClass(player.root, 'xgplayer-nostart')) {\n player.start()\n }\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n player.on('playBtnClick', onPlayBtnClick)\n\n function onDestroy () {\n player.off('playBtnClick', onPlayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'play',\n method: play\n}","import { addClass, removeClass } from '../utils/util'\n\nlet replay = function () {\n let player = this\n let root = player.root\n\n function onReplayBtnClick () {\n removeClass(root, 'xgplayer-is-replay')\n player.replay()\n }\n player.on('replayBtnClick', onReplayBtnClick)\n\n function onEnded () {\n if (!player.config.loop) {\n addClass(root, 'xgplayer-is-replay')\n }\n }\n player.on('ended', onEnded)\n\n function onDestroy () {\n player.off('replayBtnClick', onReplayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'replay',\n method: replay\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/poster.scss'\n\nlet s_poster = function () {\n let player = this\n let root = player.root\n if (!player.config.poster) {\n return\n }\n let poster = createDom('xg-poster', '', {}, 'xgplayer-poster')\n poster.style.backgroundImage = `url(${player.config.poster})`\n root.appendChild(poster)\n}\n\nexport default {\n name: 's_poster',\n method: s_poster\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/placeholder.scss'\n\nlet s_flex = function () {\n let player = this\n let playceholder = createDom('xg-placeholder', '', {}, 'xgplayer-placeholder')\n player.controls.appendChild(playceholder)\n}\n\nexport default {\n name: 's_flex',\n method: s_flex\n}","import { createDom, addClass, removeClass, hasClass, toggleClass, typeOf, event, format, findDom } from '../../utils/util'\r\nimport sniffer from '../../utils/sniffer'\r\nimport '../style/controls/progress.scss'\r\n\r\nconst isRotateFullscreen = (player) => {\r\n return hasClass(player.root, 'xgplayer-rotate-fullscreen')\r\n}\r\n\r\nlet s_progress = function () {\r\n let player = this\r\n let container = createDom('xg-progress', `<xg-outer class=\"xgplayer-progress-outer\">\r\n <xg-cache class=\"xgplayer-progress-cache\"></xg-cache>\r\n <xg-played class=\"xgplayer-progress-played\">\r\n <xg-progress-btn class=\"xgplayer-progress-btn\"></xg-progress-btn>\r\n <xg-point class=\"xgplayer-progress-point xgplayer-tips\"></xg-point>\r\n <xg-thumbnail class=\"xgplayer-progress-thumbnail xgplayer-tips\"></xg-thumbnail>\r\n </xg-played>\r\n </xg-outer>`, {tabindex: 1}, 'xgplayer-progress')\r\n let containerWidth\r\n player.controls.appendChild(container)\r\n let progress = container.querySelector('.xgplayer-progress-played')\r\n let outer = container.querySelector('.xgplayer-progress-outer')\r\n let cache = container.querySelector('.xgplayer-progress-cache')\r\n let point = container.querySelector('.xgplayer-progress-point')\r\n let thumbnail = container.querySelector('.xgplayer-progress-thumbnail')\r\n player.dotArr = {}\r\n function dotEvent (dotItem, text) {\r\n dotItem.addEventListener('mouseenter', function (e) {\r\n if (text) {\r\n addClass(dotItem, 'xgplayer-progress-dot-show')\r\n addClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n dotItem.addEventListener('mouseleave', function (e) {\r\n if (text) {\r\n removeClass(dotItem, 'xgplayer-progress-dot-show')\r\n removeClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n dotItem.addEventListener('touchend', function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n if (text) {\r\n if (!hasClass(dotItem, 'xgplayer-progress-dot-show')) {\r\n Object.keys(player.dotArr).forEach(function (key) {\r\n if (player.dotArr[key]) {\r\n removeClass(player.dotArr[key], 'xgplayer-progress-dot-show')\r\n }\r\n })\r\n }\r\n toggleClass(dotItem, 'xgplayer-progress-dot-show')\r\n toggleClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n }\r\n function onCanplay () {\r\n if (player.config.progressDot && typeOf(player.config.progressDot) === 'Array') {\r\n player.config.progressDot.forEach(item => {\r\n if (item.time >= 0 && item.time <= player.duration) {\r\n let dot = createDom('xg-progress-dot', item.text ? `<span class=\"xgplayer-progress-tip\">${item.text}</span>` : '', {}, 'xgplayer-progress-dot')\r\n dot.style.left = (item.time / player.duration) * 100 + '%'\r\n if (item.duration >= 0) {\r\n dot.style.width = (Math.min(item.duration, player.duration - item.time) / player.duration) * 100 + '%'\r\n }\r\n if(item.style) {\r\n for(let k in item.style) {\r\n dot.style[k] = item.style[k]\r\n }\r\n }\r\n outer.appendChild(dot)\r\n player.dotArr[item.time] = dot\r\n dotEvent(dot, item.text)\r\n }\r\n })\r\n }\r\n }\r\n player.once('canplay', onCanplay)\r\n player.addProgressDot = function (time, text, duration, style) {\r\n if (player.dotArr[time]) {\r\n return\r\n }\r\n if (time >= 0 && time <= player.duration) {\r\n let dot = createDom('xg-progress-dot', text ? `<span class=\"xgplayer-progress-tip\">${text}</span>` : '', {}, 'xgplayer-progress-dot')\r\n dot.style.left = (time / player.duration) * 100 + '%'\r\n if (duration >= 0) {\r\n dot.style.width = (Math.min(duration, player.duration - time) / player.duration) * 100 + '%'\r\n }\r\n if(style) {\r\n for(let k in style) {\r\n dot.style[k] = style[k]\r\n }\r\n }\r\n outer.appendChild(dot)\r\n player.dotArr[time] = dot\r\n dotEvent(dot, text)\r\n }\r\n }\r\n player.removeProgressDot = function (time) {\r\n if (time >= 0 && time <= player.duration && player.dotArr[time]) {\r\n let dot = player.dotArr[time]\r\n dot.parentNode.removeChild(dot)\r\n dot = null\r\n player.dotArr[time] = null\r\n }\r\n }\r\n player.removeAllProgressDot = function () {\r\n Object.keys(player.dotArr).forEach(function (key) {\r\n if (player.dotArr[key]) {\r\n let dot = player.dotArr[key]\r\n dot.parentNode.removeChild(dot)\r\n dot = null\r\n player.dotArr[key] = null\r\n }\r\n })\r\n }\r\n let tnailPicNum = 0\r\n let tnailWidth = 0\r\n let tnailHeight = 0\r\n let tnailCol = 0\r\n let tnailRow = 0\r\n let interval = 0\r\n let tnailUrls = []\r\n let coverPreviewContainer, coverPreviewPoint, coverPreviewOuter\r\n let onLoadedmetadata = function() {\r\n if (player.config.thumbnail) {\r\n if(player.config.thumbnail.isShowCoverPreview && !coverPreviewContainer) {\r\n progress.removeChild(thumbnail)\r\n coverPreviewContainer = createDom('xg-coverpreview', `<xg-outer class=\"xgplayer-coverpreview-outer\">\r\n <xg-thumbnail class=\"xgplayer-coverpreview-thumbnail\"></xg-thumbnail>\r\n <xg-point class=\"xgplayer-coverpreview-point\"></xg-point>\r\n </xg-outer>`, {tabindex: 1}, 'xgplayer-coverpreview')\r\n coverPreviewOuter = coverPreviewContainer.querySelector('.xgplayer-coverpreview-outer')\r\n coverPreviewPoint = coverPreviewContainer.querySelector('.xgplayer-coverpreview-point')\r\n thumbnail = coverPreviewContainer.querySelector('.xgplayer-coverpreview-thumbnail')\r\n player.root.appendChild(coverPreviewContainer)\r\n }\r\n tnailPicNum = player.config.thumbnail.pic_num\r\n tnailWidth = player.config.thumbnail.width\r\n tnailHeight = player.config.thumbnail.height\r\n tnailCol = player.config.thumbnail.col\r\n tnailRow = player.config.thumbnail.row\r\n tnailUrls = player.config.thumbnail.urls\r\n thumbnail.style.width = `${tnailWidth}px`\r\n thumbnail.style.height = `${tnailHeight}px`\r\n };\r\n };\r\n player.on('loadedmetadata', onLoadedmetadata);\r\n\r\n if (typeof player.config.disableSwipeHandler === 'function' && typeof player.config.enableSwipeHandler === 'function') {\r\n player.root.addEventListener('touchmove', e => {\r\n e.preventDefault();\r\n // e.stopPropagation();\r\n if (!player.disableSwipe) {\r\n player.disableSwipe = true\r\n player.config.disableSwipeHandler.call(player);\r\n }\r\n });\r\n player.root.addEventListener('touchstart', e => {\r\n // e.preventDefault();\r\n player.disableSwipe = true\r\n player.config.disableSwipeHandler.call(player);\r\n });\r\n player.root.addEventListener('touchend', e => {\r\n // e.preventDefault();\r\n player.disableSwipe = false\r\n player.config.enableSwipeHandler.call(player);\r\n });\r\n };\r\n\r\n ['touchstart', 'mousedown'].forEach(item => {\r\n container.addEventListener(item, function (e) {\r\n if (player.config.disableProgress) return;\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n if (e._target === point || (!player.config.allowSeekAfterEnded && player.ended)) {\r\n return true\r\n }\r\n\r\n container.focus()\r\n let {left} = progress.getBoundingClientRect()\r\n\r\n const isRotate = isRotateFullscreen(player)\r\n if (isRotate) {\r\n left = progress.getBoundingClientRect().top\r\n containerWidth = container.getBoundingClientRect().height\r\n } else {\r\n containerWidth = container.getBoundingClientRect().width\r\n left = progress.getBoundingClientRect().left\r\n }\r\n\r\n let move = function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n player.isProgressMoving = true\r\n let w = (isRotate ? e.clientY : e.clientX) - left\r\n if (w > containerWidth) {\r\n w = containerWidth\r\n }\r\n let now = w / containerWidth * player.duration\r\n if(now < 0) now = 0\r\n if(player.config.allowSeekPlayed && (Number(now).toFixed(1) > player.maxPlayedTime)) {}\r\n else {\r\n progress.style.width = `${w * 100 / containerWidth}%`\r\n\r\n if (player.videoConfig.mediaType === 'video' && !player.dash && !player.config.closeMoveSeek) {\r\n player.currentTime = Number(now).toFixed(1)\r\n } else {\r\n let time = findDom(player.controls, '.xgplayer-time')\r\n if (time) {\r\n time.innerHTML = `<span class=\"xgplayer-time-current\">${format(now || 0)}</span><span>${format(player.duration)}</span>`\r\n }\r\n }\r\n }\r\n\r\n if(player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {\r\n coverPreviewPoint.innerHTML = `<span>${format(now)}</span> / ${format(player.duration || 0)}`\r\n\r\n interval = player.duration / tnailPicNum\r\n let index = Math.floor(now / interval)\r\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\r\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\r\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\r\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\r\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\r\n coverPreviewContainer.style.display = 'block'\r\n }\r\n \r\n player.emit('focus')\r\n }\r\n let up = function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n window.removeEventListener('mousemove', move)\r\n window.removeEventListener('touchmove', move, { passive: false })\r\n window.removeEventListener('mouseup', up)\r\n window.removeEventListener('touchend', up)\r\n if(sniffer.browser.indexOf('ie') < 0) {\r\n container.blur()\r\n }\r\n if (!player.isProgressMoving || (player.videoConfig && player.videoConfig.mediaType === 'audio') || player.dash || player.config.closeMoveSeek) {\r\n let w = (isRotate ? e.clientY : e.clientX) - left\r\n if (w > containerWidth) {\r\n w = containerWidth\r\n }\r\n let now = w / containerWidth * player.duration\r\n if(now < 0) now = 0\r\n if(player.config.allowSeekPlayed && (Number(now).toFixed(1) > player.maxPlayedTime)) {}\r\n else {\r\n progress.style.width = `${w * 100 / containerWidth}%`\r\n player.currentTime = Number(now).toFixed(1)\r\n }\r\n }\r\n if(player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {\r\n coverPreviewContainer.style.display = 'none'\r\n }\r\n player.emit('focus')\r\n player.isProgressMoving = false\r\n }\r\n window.addEventListener('mousemove', move)\r\n window.addEventListener('touchmove', move, { passive: false })\r\n window.addEventListener('mouseup', up)\r\n window.addEventListener('touchend', up)\r\n return true\r\n })\r\n })\r\n\r\n container.addEventListener('mouseenter', function (e) {\r\n if (!player.config.allowSeekAfterEnded && player.ended) {\r\n return true\r\n }\r\n const isRotate = isRotateFullscreen(player)\r\n let containerLeft = isRotate ? container.getBoundingClientRect().top : container.getBoundingClientRect().left\r\n let containerWidth = isRotate ? container.getBoundingClientRect().height : container.getBoundingClientRect().width\r\n\r\n let compute = function (e) {\r\n let now = ((isRotate ? e.clientY : e.clientX) - containerLeft) / containerWidth * player.duration\r\n now = now < 0 ? 0 : now\r\n point.textContent = format(now)\r\n let pointWidth = point.getBoundingClientRect().width\r\n if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {\r\n interval = player.duration / tnailPicNum\r\n let index = Math.floor(now / interval)\r\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\r\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\r\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\r\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\r\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\r\n let left = (isRotate ? e.clientY : e.clientX) - containerLeft - tnailWidth / 2\r\n left = left > 0 ? left : 0\r\n left = left < containerWidth - tnailWidth ? left : containerWidth - tnailWidth\r\n thumbnail.style.left = `${left}px`\r\n thumbnail.style.top = `${-10 - tnailHeight}px`\r\n thumbnail.style.display = 'block'\r\n point.style.left = `${left + tnailWidth / 2 - pointWidth / 2}px`\r\n } else {\r\n let left = e.clientX - containerLeft - pointWidth / 2\r\n left = left > 0 ? left : 0\r\n left = left > containerWidth - pointWidth ? containerWidth - pointWidth : left\r\n point.style.left = `${left}px`\r\n }\r\n if (hasClass(container, 'xgplayer-progress-dot-active')) {\r\n point.style.display = 'none'\r\n } else {\r\n point.style.display = 'block'\r\n }\r\n }\r\n let move = function (e) {\r\n compute(e)\r\n }\r\n let leave = function (e) {\r\n container.removeEventListener('mousemove', move, false)\r\n container.removeEventListener('mouseleave', leave, false)\r\n compute(e)\r\n point.style.display = 'none'\r\n if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {\r\n thumbnail.style.display = 'none'\r\n }\r\n }\r\n container.addEventListener('mousemove', move, false)\r\n container.addEventListener('mouseleave', leave, false)\r\n compute(e)\r\n }, false)\r\n\r\n // let lastBtnLeft = false\r\n let onTimeupdate = function () {\r\n if(player.maxPlayedTime === undefined) player.maxPlayedTime = 0\r\n if(player.maxPlayedTime < player.currentTime) player.maxPlayedTime = player.currentTime\r\n if (!containerWidth && container) {\r\n containerWidth = container.getBoundingClientRect().width\r\n }\r\n if (!player.isProgressMoving && !player.isSeeking && !player.seeking) {\r\n const precent = player.currentTime / player.duration\r\n const prevPrecent = Number(progress.style.width.replace('%', '') || '0') / Number(container.style.width || '100');\r\n if (Math.abs(precent - prevPrecent) <= 1) {\r\n progress.style.width = `${player.currentTime * 100 / player.duration}%`\r\n }\r\n }\r\n }\r\n player.on('timeupdate', onTimeupdate)\r\n\r\n let onCurrentTimeChange = function (time) {\r\n progress.style.width = `${time * 100 / player.duration}%`\r\n }\r\n player.on('currentTimeChange', onCurrentTimeChange)\r\n\r\n let onSrcChange = function () {\r\n progress.style.width = '0%'\r\n }\r\n player.on('srcChange', onSrcChange)\r\n\r\n let onCacheUpdate = function () {\r\n let buffered = player.buffered\r\n if (buffered && buffered.length > 0) {\r\n let end = buffered.end(buffered.length - 1)\r\n for (let i = 0, len = buffered.length; i < len; i++) {\r\n if (player.currentTime >= buffered.start(i) && player.currentTime <= buffered.end(i)) {\r\n end = buffered.end(i)\r\n for (let j = i + 1; j < buffered.length; j++) {\r\n if (buffered.start(j) - buffered.end(j - 1) >= 2) {\r\n end = buffered.end(j - 1)\r\n break\r\n }\r\n }\r\n break\r\n }\r\n }\r\n cache.style.width = `${end / player.duration * 100}%`\r\n }\r\n }\r\n const cacheUpdateEvents = ['bufferedChange', 'cacheupdate', 'ended', 'timeupdate']\r\n cacheUpdateEvents.forEach(item => {\r\n player.on(item, onCacheUpdate)\r\n })\r\n\r\n function destroyFunc () {\r\n player.removeAllProgressDot()\r\n player.off('canplay', onCanplay)\r\n player.off('timeupdate', onTimeupdate)\r\n player.off('currentTimeChange', onCurrentTimeChange)\r\n player.off('srcChange', onSrcChange)\r\n player.off('loadedmetadata', onLoadedmetadata);\r\n cacheUpdateEvents.forEach(item => {\r\n player.off(item, onCacheUpdate)\r\n })\r\n player.off('destroy', destroyFunc)\r\n }\r\n player.once('destroy', destroyFunc)\r\n}\r\n\r\nexport default {\r\n name: 's_progress',\r\n method: s_progress\r\n}","import { createDom, format } from '../../utils/util'\nimport '../style/controls/time.scss'\n\nlet s_time = function () {\n let player = this\n let container = createDom('xg-time', `<span class=\"xgplayer-time-current\">${player.currentTime || format(0)}</span>\n <span>${player.duration || format(0)}</span>`, {}, 'xgplayer-time')\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(container)\n }\n })\n let onTimeChange = function () {\n // let liveText = player.lang.LIVE\n // if(player.duration === Infinity) {\n // addClass(player.root, 'xgplayer-is-live')\n // if(!findDom(player.root, '.xgplayer-live')) {\n // const live = createDom('xg-live', liveText, {}, 'xgplayer-live')\n // player.controls.appendChild(live)\n // }\n // }\n if (player.videoConfig.mediaType !== 'audio' || !player.isProgressMoving || !player.dash) {\n container.innerHTML = `<span class=\"xgplayer-time-current\">${format(player.currentTime || 0)}</span>` + `<span>${format(player.duration)}</span>`\n }\n }\n player.on('durationchange', onTimeChange)\n player.on('timeupdate', onTimeChange)\n\n function onDestroy () {\n player.off('durationchange', onTimeChange)\n player.off('timeupdate', onTimeChange)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_time',\n method: s_time\n}","import { createDom, createImgBtn } from '../../utils/util'\nimport PlayIcon from '../assets/play.svg'\nimport PauseIcon from '../assets/pause.svg'\nimport '../style/controls/play.scss'\n\nlet s_play = function () {\n let player = this\n let playBtn = player.config.playBtn ? player.config.playBtn : {}\n let btn\n if (playBtn.type === 'img') {\n btn = createImgBtn('play', playBtn.url.play, playBtn.width, playBtn.height)\n } else {\n btn = createDom('xg-play', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-play\">${PlayIcon}</div>\n <div class=\"xgplayer-icon-pause\">${PauseIcon}</div>\n </xg-icon>`, {}, 'xgplayer-play')\n }\n\n let tipsText = {}\n tipsText.play = player.lang.PLAY_TIPS\n tipsText.pause = player.lang.PAUSE_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-play\">${tipsText.play}</span>\n <span class=\"xgplayer-tip-pause\">${tipsText.pause}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(btn)\n }\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('playBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_play',\n method: s_play\n}","import { createDom, createImgBtn } from '../../utils/util'\nimport RequestFullIcon from '../assets/requestFull.svg'\nimport ExitFullIcon from '../assets/exitFull.svg'\nimport '../style/controls/fullscreen.scss'\n\nlet s_fullscreen = function () {\n let player = this\n let fullscreenBtn = player.config.fullscreenBtn ? player.config.fullscreenBtn : {}\n let btn\n if (fullscreenBtn.type === 'img') {\n btn = createImgBtn('fullscreen', fullscreenBtn.url.request, fullscreenBtn.width, fullscreenBtn.height)\n } else {\n btn = createDom('xg-fullscreen', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-requestfull\">${RequestFullIcon}</div>\n <div class=\"xgplayer-icon-exitfull\">${ExitFullIcon}</div>\n </xg-icon>`, {}, 'xgplayer-fullscreen')\n }\n\n let tipsText = {}\n tipsText.requestfull = player.lang.FULLSCREEN_TIPS\n tipsText.exitfull = player.lang.EXITFULLSCREEN_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-requestfull\">${tipsText.requestfull}</span>\n <span class=\"xgplayer-tip-exitfull\">${tipsText.exitfull}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(btn)\n }\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('fullscreenBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_fullscreen',\n method: s_fullscreen\n}","import { createDom } from '../../utils/util'\nimport Loading from '../assets/loading.svg'\nimport '../style/controls/loading.scss'\n\nlet s_loading = function () {\n let player = this\n let root = player.root\n let container = createDom('xg-loading', `${Loading}`, {}, 'xgplayer-loading')\n player.once('ready', () => {\n root.appendChild(container)\n })\n}\n\nexport default {\n name: 's_loading',\n method: s_loading\n}","import { createDom } from '../../utils/util'\nimport ReplayIcon from '../assets/replay.svg'\nimport '../style/controls/replay.scss'\n\nlet s_replay = function () {\n let player = this\n let root = player.root\n\n let replayText = player.lang.REPLAY\n let btn = createDom('xg-replay', `${ReplayIcon}\n <xg-replay-txt class=\"xgplayer-replay-txt\">${replayText}</xg-replay-txt>\n `, {}, 'xgplayer-replay')\n player.once('ready', () => {\n root.appendChild(btn)\n })\n\n function onEnded () {\n let path = btn.querySelector('path')\n if(path) {\n let transform = window.getComputedStyle(path).getPropertyValue('transform')\n if(typeof transform === 'string' && transform.indexOf('none') > -1) {\n return\n } else {\n path.setAttribute('transform', transform)\n }\n }\n }\n player.on('ended', onEnded)\n\n function onBtnClick (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n btn.addEventListener('click', onBtnClick)\n\n let svg = btn.querySelector('svg');\n\n ['click', 'touchend'].forEach(item => {\n svg.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('replayBtnClick')\n })\n })\n\n function destroyFunc () {\n player.off('ended', onEnded)\n player.off('destroy', destroyFunc)\n }\n player.once('destroy', destroyFunc)\n}\n\nexport default {\n name: 's_replay',\n method: s_replay\n}","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./play.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./play.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./play.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-play,.xgplayer-skin-default .xgplayer-play-img{width:40px;position:relative;-webkit-order:0;-moz-box-ordinal-group:1;order:0;display:block;cursor:pointer;margin-left:3px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-play .xgplayer-icon{margin-top:3px;width:32px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-play .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}.xgplayer-skin-default .xgplayer-play-img:hover,.xgplayer-skin-default .xgplayer-play:hover{opacity:.85}.xgplayer-skin-default .xgplayer-play-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-play:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-poster{display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:50%}.xgplayer-skin-default.xgplayer-nostart .xgplayer-poster{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./placeholder.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./placeholder.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./placeholder.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-placeholder{-webkit-flex:1;-moz-box-flex:1;flex:1;-webkit-order:3;-moz-box-ordinal-group:4;order:3;display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./fullscreen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./fullscreen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./fullscreen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-fullscreen,.xgplayer-skin-default .xgplayer-fullscreen-img{position:relative;-webkit-order:13;-moz-box-ordinal-group:14;order:13;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img:hover,.xgplayer-skin-default .xgplayer-fullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-fullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./loading.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./loading.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./loading.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-loading{display:none;width:100px;height:100px;overflow:hidden;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);position:absolute;left:50%;top:50%;margin:-50px auto auto -50px}.xgplayer-skin-default .xgplayer-loading svg{border-radius:50%;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-animation:loadingRotate 1s linear infinite;animation:loadingRotate 1s linear infinite}.xgplayer-skin-default .xgplayer-loading svg path{stroke:#ddd;stroke-dasharray:236;-webkit-animation:loadingDashOffset 2s linear infinite;animation:loadingDashOffset 2s linear infinite;animation-direction:alternate-reverse;fill:none;stroke-width:12px}.xgplayer-skin-default.xgplayer-nostart .xgplayer-loading{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-loading{display:none!important}.xgplayer-skin-default.xgplayer-isloading .xgplayer-loading{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./progress.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./progress.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./progress.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-progress{display:block;position:absolute;height:20px;line-height:20px;left:12px;right:12px;outline:none;top:-15px;z-index:35}.xgplayer-skin-default .xgplayer-progress-outer{background:hsla(0,0%,100%,.3);display:block;height:3px;line-height:3px;margin-top:8.5px;width:100%;position:relative;cursor:pointer}.xgplayer-skin-default .xgplayer-progress-cache,.xgplayer-skin-default .xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-skin-default .xgplayer-progress-cache{width:0;background:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#fa1f41,#e31106);border-radius:0 1.5px 1.5px 0}.xgplayer-skin-default .xgplayer-progress-btn{display:none;position:absolute;left:0;top:-5px;width:13px;height:13px;border-radius:30px;background:#fff;box-shadow:0 0 2px 0 rgba(0,0,0,.26);left:100%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);z-index:36}.xgplayer-skin-default .xgplayer-progress-point{position:absolute}.xgplayer-skin-default .xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-skin-default .xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer-skin-default .xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;bottom:200%;right:50%;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);height:auto;line-height:30px;width:auto;background:rgba(0,0,0,.3);border-radius:6px;border:1px solid rgba(0,0,0,.8);cursor:default;white-space:nowrap;display:none}.xgplayer-skin-default .xgplayer-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-skin-default .xgplayer-progress-thumbnail{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box}.xgplayer-skin-default .xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-skin-default .xgplayer-coverpreview{position:absolute;width:100%;height:100%;top:0;left:0;display:none}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer{position:absolute;display:block;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-thumbnail{display:block}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point{display:block;text-align:center;font-family:PingFangSC-Regular;font-size:11px;color:#ccc;padding:2px 4px}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point span{color:#fff}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-dot{height:6px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-btn{display:block;top:-3px}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-volume-active .xgplayer-progress{z-index:15}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress-btn{display:block!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer{height:3px!important;margin-top:8.5px!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-btn{display:block!important;top:-5px!important}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-time{-webkit-order:2;-moz-box-ordinal-group:3;order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;height:40px;text-align:center;display:inline-block;margin:auto 8px}.xgplayer-skin-default .xgplayer-time span{color:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current{color:#fff}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current:after{content:\\\"/\\\";display:inline-block;padding:0 3px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./replay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./replay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./replay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:105;display:none;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center;background:rgba(0,0,0,.54);-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.xgplayer-skin-default .xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-skin-default .xgplayer-replay svg path{-webkit-transform:translate(20px,21px);-ms-transform:translate(20px,21px);transform:translate(20px,21px);fill:#ddd}.xgplayer-skin-default .xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-skin-default .xgplayer-replay svg:hover path{fill:#fff}.xgplayer-skin-default .xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-replay{display:-webkit-flex;display:-moz-box;display:flex}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./textTrack.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./textTrack.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./textTrack.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage\n// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime\n// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs\n// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling.\n// v4 adds AMD/UMD, commonJS, and plain browser support\n// v4.1 adds url download capability via solo URL argument (same domain/CORS only)\n// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors\n// https://github.com/rndme/download\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof exports === 'object') {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.download = factory();\n }\n}(this, function () {\n\n\treturn function download(data, strFileName, strMimeType) {\n\n\t\tvar self = window, // this script is only for browsers anyway...\n\t\t\tdefaultMime = \"application/octet-stream\", // this default mime also triggers iframe downloads\n\t\t\tmimeType = strMimeType || defaultMime,\n\t\t\tpayload = data,\n\t\t\turl = !strFileName && !strMimeType && payload,\n\t\t\tanchor = document.createElement(\"a\"),\n\t\t\ttoString = function(a){return String(a);},\n\t\t\tmyBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString),\n\t\t\tfileName = strFileName || \"download\",\n\t\t\tblob,\n\t\t\treader;\n\t\t\tmyBlob= myBlob.call ? myBlob.bind(self) : Blob ;\n\t \n\t\tif(String(this)===\"true\"){ //reverse arguments, allowing download.bind(true, \"text/xml\", \"export.xml\") to act as a callback\n\t\t\tpayload=[payload, mimeType];\n\t\t\tmimeType=payload[0];\n\t\t\tpayload=payload[1];\n\t\t}\n\n\n\t\tif(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument\n\t\t\tfileName = url.split(\"/\").pop().split(\"?\")[0];\n\t\t\tanchor.href = url; // assign href prop to temp anchor\n\t\t \tif(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path:\n \t\tvar ajax=new XMLHttpRequest();\n \t\tajax.open( \"GET\", url, true);\n \t\tajax.responseType = 'blob';\n \t\tajax.onload= function(e){ \n\t\t\t\t download(e.target.response, fileName, defaultMime);\n\t\t\t\t};\n \t\tsetTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return:\n\t\t\t return ajax;\n\t\t\t} // end if valid url?\n\t\t} // end if url?\n\n\n\t\t//go ahead and download dataURLs right away\n\t\tif(/^data:([\\w+-]+\\/[\\w+.-]+)?[,;]/.test(payload)){\n\t\t\n\t\t\tif(payload.length > (1024*1024*1.999) && myBlob !== toString ){\n\t\t\t\tpayload=dataUrlToBlob(payload);\n\t\t\t\tmimeType=payload.type || defaultMime;\n\t\t\t}else{\t\t\t\n\t\t\t\treturn navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs:\n\t\t\t\t\tnavigator.msSaveBlob(dataUrlToBlob(payload), fileName) :\n\t\t\t\t\tsaver(payload) ; // everyone else can save dataURLs un-processed\n\t\t\t}\n\t\t\t\n\t\t}else{//not data url, is it a string with special needs?\n\t\t\tif(/([\\x80-\\xff])/.test(payload)){\t\t\t \n\t\t\t\tvar i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length;\n\t\t\t\tfor(i;i<mx;++i) tempUiArr[i]= payload.charCodeAt(i);\n\t\t\t \tpayload=new myBlob([tempUiArr], {type: mimeType});\n\t\t\t}\t\t \n\t\t}\n\t\tblob = payload instanceof myBlob ?\n\t\t\tpayload :\n\t\t\tnew myBlob([payload], {type: mimeType}) ;\n\n\n\t\tfunction dataUrlToBlob(strUrl) {\n\t\t\tvar parts= strUrl.split(/[:;,]/),\n\t\t\ttype= parts[1],\n\t\t\tdecoder= parts[2] == \"base64\" ? atob : decodeURIComponent,\n\t\t\tbinData= decoder( parts.pop() ),\n\t\t\tmx= binData.length,\n\t\t\ti= 0,\n\t\t\tuiArr= new Uint8Array(mx);\n\n\t\t\tfor(i;i<mx;++i) uiArr[i]= binData.charCodeAt(i);\n\n\t\t\treturn new myBlob([uiArr], {type: type});\n\t\t }\n\n\t\tfunction saver(url, winMode){\n\n\t\t\tif ('download' in anchor) { //html5 A[download]\n\t\t\t\tanchor.href = url;\n\t\t\t\tanchor.setAttribute(\"download\", fileName);\n\t\t\t\tanchor.className = \"download-js-link\";\n\t\t\t\tanchor.innerHTML = \"downloading...\";\n\t\t\t\tanchor.style.display = \"none\";\n\t\t\t\tdocument.body.appendChild(anchor);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tanchor.click();\n\t\t\t\t\tdocument.body.removeChild(anchor);\n\t\t\t\t\tif(winMode===true){setTimeout(function(){ self.URL.revokeObjectURL(anchor.href);}, 250 );}\n\t\t\t\t}, 66);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// handle non-a[download] safari as best we can:\n\t\t\tif(/(Version)\\/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari\\//.test(navigator.userAgent)) {\n\t\t\t\tif(/^data:/.test(url))\turl=\"data:\"+url.replace(/^data:([\\w\\/\\-\\+]+)/, defaultMime);\n\t\t\t\tif(!window.open(url)){ // popup blocked, offer direct download:\n\t\t\t\t\tif(confirm(\"Displaying New Document\\n\\nUse Save As... to download, then click back to return to this page.\")){ location.href=url; }\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t//do iframe dataURL download (old ch+FF):\n\t\t\tvar f = document.createElement(\"iframe\");\n\t\t\tdocument.body.appendChild(f);\n\n\t\t\tif(!winMode && /^data:/.test(url)){ // force a mime that will download:\n\t\t\t\turl=\"data:\"+url.replace(/^data:([\\w\\/\\-\\+]+)/, defaultMime);\n\t\t\t}\n\t\t\tf.src=url;\n\t\t\tsetTimeout(function(){ document.body.removeChild(f); }, 333);\n\n\t\t}//end saver\n\n\n\n\n\t\tif (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\n\t\t\treturn navigator.msSaveBlob(blob, fileName);\n\t\t}\n\n\t\tif(self.URL){ // simple fast and modern way using Blob and URL:\n\t\t\tsaver(self.URL.createObjectURL(blob), true);\n\t\t}else{\n\t\t\t// handle non-Blob()+non-URL browsers:\n\t\t\tif(typeof blob === \"string\" || blob.constructor===toString ){\n\t\t\t\ttry{\n\t\t\t\t\treturn saver( \"data:\" + mimeType + \";base64,\" + self.btoa(blob) );\n\t\t\t\t}catch(y){\n\t\t\t\t\treturn saver( \"data:\" + mimeType + \",\" + encodeURIComponent(blob) );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Blob but not URL support:\n\t\t\treader=new FileReader();\n\t\t\treader.onload=function(e){\n\t\t\t\tsaver(this.result);\n\t\t\t};\n\t\t\treader.readAsDataURL(blob);\n\t\t}\n\t\treturn true;\n\t}; /* end download() */\n}));\n","/*!\n * Draggabilly v2.3.0\n * Make that shiz draggable\n * https://draggabilly.desandro.com\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n 'unidragger/unidragger',\n ],\n function( getSize, Unidragger ) {\n return factory( window, getSize, Unidragger );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size'),\n require('unidragger')\n );\n } else {\n // browser global\n window.Draggabilly = factory(\n window,\n window.getSize,\n window.Unidragger\n );\n }\n\n}( window, function factory( window, getSize, Unidragger ) {\n\n// -------------------------- helpers & variables -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nfunction noop() {}\n\nvar jQuery = window.jQuery;\n\n// -------------------------- -------------------------- //\n\nfunction Draggabilly( element, options ) {\n // querySelector if string\n this.element = typeof element == 'string' ?\n document.querySelector( element ) : element;\n\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n\n // options\n this.options = extend( {}, this.constructor.defaults );\n this.option( options );\n\n this._create();\n}\n\n// inherit Unidragger methods\nvar proto = Draggabilly.prototype = Object.create( Unidragger.prototype );\n\nDraggabilly.defaults = {\n};\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function( opts ) {\n extend( this.options, opts );\n};\n\n// css position values that don't need to be set\nvar positionValues = {\n relative: true,\n absolute: true,\n fixed: true,\n};\n\nproto._create = function() {\n // properties\n this.position = {};\n this._getPosition();\n\n this.startPoint = { x: 0, y: 0 };\n this.dragPoint = { x: 0, y: 0 };\n\n this.startPosition = extend( {}, this.position );\n\n // set relative positioning\n var style = getComputedStyle( this.element );\n if ( !positionValues[ style.position ] ) {\n this.element.style.position = 'relative';\n }\n\n // events, bridge jQuery events from vanilla\n this.on( 'pointerMove', this.onPointerMove );\n this.on( 'pointerUp', this.onPointerUp );\n\n this.enable();\n this.setHandles();\n};\n\n/**\n * set this.handles and bind start events to 'em\n */\nproto.setHandles = function() {\n this.handles = this.options.handle ?\n this.element.querySelectorAll( this.options.handle ) : [ this.element ];\n\n this.bindHandles();\n};\n\n/**\n * emits events via EvEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = [ event ].concat( args );\n this.emitEvent( type, emitArgs );\n this.dispatchJQueryEvent( type, event, args );\n};\n\nproto.dispatchJQueryEvent = function( type, event, args ) {\n var jquery = window.jQuery;\n // trigger jQuery event\n if ( !jquery || !this.$element ) {\n return;\n }\n // create jQuery event\n /* eslint-disable-next-line new-cap */\n var $event = jquery.Event( event );\n $event.type = type;\n this.$element.trigger( $event, args );\n};\n\n// -------------------------- position -------------------------- //\n\n// get x/y position from style\nproto._getPosition = function() {\n var style = getComputedStyle( this.element );\n var x = this._getPositionCoord( style.left, 'width' );\n var y = this._getPositionCoord( style.top, 'height' );\n // clean up 'auto' or other non-integer values\n this.position.x = isNaN( x ) ? 0 : x;\n this.position.y = isNaN( y ) ? 0 : y;\n\n this._addTransformPosition( style );\n};\n\nproto._getPositionCoord = function( styleSide, measure ) {\n if ( styleSide.indexOf('%') != -1 ) {\n // convert percent into pixel for Safari, #75\n var parentSize = getSize( this.element.parentNode );\n // prevent not-in-DOM element throwing bug, #131\n return !parentSize ? 0 :\n ( parseFloat( styleSide ) / 100 ) * parentSize[ measure ];\n }\n return parseInt( styleSide, 10 );\n};\n\n// add transform: translate( x, y ) to position\nproto._addTransformPosition = function( style ) {\n var transform = style.transform;\n // bail out if value is 'none'\n if ( transform.indexOf('matrix') !== 0 ) {\n return;\n }\n // split matrix(1, 0, 0, 1, x, y)\n var matrixValues = transform.split(',');\n // translate X value is in 12th or 4th position\n var xIndex = transform.indexOf('matrix3d') === 0 ? 12 : 4;\n var translateX = parseInt( matrixValues[ xIndex ], 10 );\n // translate Y value is in 13th or 5th position\n var translateY = parseInt( matrixValues[ xIndex + 1 ], 10 );\n this.position.x += translateX;\n this.position.y += translateY;\n};\n\n// -------------------------- events -------------------------- //\n\nproto.onPointerDown = function( event, pointer ) {\n this.element.classList.add('is-pointer-down');\n this.dispatchJQueryEvent( 'pointerDown', event, [ pointer ] );\n};\n\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay || !this.isEnabled ) {\n this._pointerReset();\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.element.classList.add('is-pointer-down');\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\n/**\n * drag start\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.dragStart = function( event, pointer ) {\n if ( !this.isEnabled ) {\n return;\n }\n this._getPosition();\n this.measureContainment();\n // position _when_ drag began\n this.startPosition.x = this.position.x;\n this.startPosition.y = this.position.y;\n // reset left/top style\n this.setLeftTop();\n\n this.dragPoint.x = 0;\n this.dragPoint.y = 0;\n\n this.element.classList.add('is-dragging');\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n // start animation\n this.animate();\n};\n\nproto.measureContainment = function() {\n var container = this.getContainer();\n if ( !container ) {\n return;\n }\n\n var elemSize = getSize( this.element );\n var containerSize = getSize( container );\n var elemRect = this.element.getBoundingClientRect();\n var containerRect = container.getBoundingClientRect();\n\n var borderSizeX = containerSize.borderLeftWidth + containerSize.borderRightWidth;\n var borderSizeY = containerSize.borderTopWidth + containerSize.borderBottomWidth;\n\n var position = this.relativeStartPosition = {\n x: elemRect.left - ( containerRect.left + containerSize.borderLeftWidth ),\n y: elemRect.top - ( containerRect.top + containerSize.borderTopWidth ),\n };\n\n this.containSize = {\n width: ( containerSize.width - borderSizeX ) - position.x - elemSize.width,\n height: ( containerSize.height - borderSizeY ) - position.y - elemSize.height,\n };\n};\n\nproto.getContainer = function() {\n var containment = this.options.containment;\n if ( !containment ) {\n return;\n }\n var isElement = containment instanceof HTMLElement;\n // use as element\n if ( isElement ) {\n return containment;\n }\n // querySelector if string\n if ( typeof containment == 'string' ) {\n return document.querySelector( containment );\n }\n // fallback to parent element\n return this.element.parentNode;\n};\n\n// ----- move event ----- //\n\nproto.onPointerMove = function( event, pointer, moveVector ) {\n this.dispatchJQueryEvent( 'pointerMove', event, [ pointer, moveVector ] );\n};\n\n/**\n * drag move\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n * @param {Object} moveVector - x and y coordinates\n */\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isEnabled ) {\n return;\n }\n var dragX = moveVector.x;\n var dragY = moveVector.y;\n\n var grid = this.options.grid;\n var gridX = grid && grid[0];\n var gridY = grid && grid[1];\n\n dragX = applyGrid( dragX, gridX );\n dragY = applyGrid( dragY, gridY );\n\n dragX = this.containDrag( 'x', dragX, gridX );\n dragY = this.containDrag( 'y', dragY, gridY );\n\n // constrain to axis\n dragX = this.options.axis == 'y' ? 0 : dragX;\n dragY = this.options.axis == 'x' ? 0 : dragY;\n\n this.position.x = this.startPosition.x + dragX;\n this.position.y = this.startPosition.y + dragY;\n // set dragPoint properties\n this.dragPoint.x = dragX;\n this.dragPoint.y = dragY;\n\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nfunction applyGrid( value, grid, method ) {\n method = method || 'round';\n return grid ? Math[ method ]( value/grid ) * grid : value;\n}\n\nproto.containDrag = function( axis, drag, grid ) {\n if ( !this.options.containment ) {\n return drag;\n }\n var measure = axis == 'x' ? 'width' : 'height';\n\n var rel = this.relativeStartPosition[ axis ];\n var min = applyGrid( -rel, grid, 'ceil' );\n var max = this.containSize[ measure ];\n max = applyGrid( max, grid, 'floor' );\n return Math.max( min, Math.min( max, drag ) );\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.onPointerUp = function( event, pointer ) {\n this.element.classList.remove('is-pointer-down');\n this.dispatchJQueryEvent( 'pointerUp', event, [ pointer ] );\n};\n\n/**\n * drag end\n * @param {Event} event\n * @param {[Event, Touch]} pointer\n */\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isEnabled ) {\n return;\n }\n // use top left position when complete\n this.element.style.transform = '';\n this.setLeftTop();\n this.element.classList.remove('is-dragging');\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\n// -------------------------- animation -------------------------- //\n\nproto.animate = function() {\n // only render and animate if dragging\n if ( !this.isDragging ) {\n return;\n }\n\n this.positionDrag();\n\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n\n};\n\n// left/top positioning\nproto.setLeftTop = function() {\n this.element.style.left = this.position.x + 'px';\n this.element.style.top = this.position.y + 'px';\n};\n\nproto.positionDrag = function() {\n this.element.style.transform = 'translate3d( ' + this.dragPoint.x +\n 'px, ' + this.dragPoint.y + 'px, 0)';\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n this.dispatchEvent( 'staticClick', event, [ pointer ] );\n};\n\n// ----- methods ----- //\n\n/**\n * @param {Number} x\n * @param {Number} y\n */\nproto.setPosition = function( x, y ) {\n this.position.x = x;\n this.position.y = y;\n this.setLeftTop();\n};\n\nproto.enable = function() {\n this.isEnabled = true;\n};\n\nproto.disable = function() {\n this.isEnabled = false;\n if ( this.isDragging ) {\n this.dragEnd();\n }\n};\n\nproto.destroy = function() {\n this.disable();\n // reset styles\n this.element.style.transform = '';\n this.element.style.left = '';\n this.element.style.top = '';\n this.element.style.position = '';\n // unbind handles\n this.unbindHandles();\n // remove jQuery data\n if ( this.$element ) {\n this.$element.removeData('draggabilly');\n }\n};\n\n// ----- jQuery bridget ----- //\n\n// required for jQuery bridget\nproto._init = noop;\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'draggabilly', Draggabilly );\n}\n\n// ----- ----- //\n\nreturn Draggabilly;\n\n} ) );\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=t||self,t.XgSubtitle=e())}(this,function(){\"use strict\";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function e(t,e){return e={exports:{}},t(e,e.exports),e.exports}function n(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r}),this.resolve=F(e),this.reject=F(n)}function r(t){var e=t.length;return 3===e?(60*(60*Number(t[0])+Number(t[1]))*1e3+1e3*Number(t[2]))/1e3:2===e?(60*Number(t[0])*1e3+1e3*Number(t[1]))/1e3:Number(t[0])}function i(t){return/^(\\-|\\+)?\\d+(\\.\\d+)?$/.test(t)}function o(t){return t}function s(t,e){return t>=0&&t<e.length?e[t]:\"\"}function a(t,e){if(!t)return!1;if(t.classList)return Array.prototype.some.call(t.classList,function(t){return t===e});var n=t.className&&\"object\"===Je(t.className)?t.getAttribute(\"class\"):t.className;return n&&!!n.match(new RegExp(\"(\\\\s|^)\"+e+\"(\\\\s|$)\"))}function u(t,e){t&&(t.classList?e.replace(/(^\\s+|\\s+$)/g,\"\").split(/\\s+/g).forEach(function(e){e&&t.classList.add(e)}):a(t,e)||(t.className&&\"object\"===Je(t.className)?t.setAttribute(\"class\",t.getAttribute(\"class\")+\" \"+e):t.className+=\" \"+e))}function c(t,e){t&&(t.classList?e.split(/\\s+/g).forEach(function(e){t.classList.remove(e)}):a(t,e)&&e.split(/\\s+/g).forEach(function(e){var n=new RegExp(\"(\\\\s|^)\"+e+\"(\\\\s|$)\");t.className&&\"object\"===Je(t.className)?t.setAttribute(\"class\",t.getAttribute(\"class\").replace(n,\" \")):t.className=t.className.replace(n,\" \")}))}function l(t,e,n){var r=e.length;if(r<1)return-1;if(n=n<0?0:n>=r?r-1:n,e[n].start<=t&&t<e[n].end)return n;for(var i=e[n].end<=t?n+1:0;i<r;i++){if(e[i].start<=t&&t<e[i].end)return i;if(t>e[i].end&&i+1<r&&t<e[i+1].start)return-1;if(t>e[i].end&&i+1>=r)return-1}return-1}function f(t,e,n){var r=e.length;if(r<1)return[];var i=[];if((n=n<0?0:n>=r?r-1:n)<r)for(var o=e[n].end<=t?n:0;o<r&&(e[o].start<=t&&t<e[o].end&&i.push(o),!(t<e[o].start));o++);return i}function h(t){return Object.prototype.toString.call(t).match(/([^\\s.*]+)(?=]$)/g)[0]}function d(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"div\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"\",i=document.createElement(t);return i.className=r,i.innerHTML=e,kr(n).forEach(function(e){var r=e,o=n[e];\"video\"===t||\"audio\"===t||\"live-video\"===t?o&&i.setAttribute(r,o):i.setAttribute(r,o)}),i}function p(){var t=navigator.userAgent,e=/(?:Windows Phone)/.test(t),n=/(?:SymbianOS)/.test(t)||e,r=/(?:Android)/.test(t),i=/(?:Firefox)/.test(t),o=/(?:iPad|PlayBook)/.test(t)||r&&!/(?:Mobile)/.test(t)||i&&/(?:Tablet)/.test(t);return/(?:iPhone)/.test(t)&&!o||r||n||o}function v(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=\"\";t.map(function(t){n+=\" \"+e+\" \"+t.key+\" {\"+t.style+\"}\"});var r=document.createElement(\"style\"),i=document.head||document.getElementsByTagName(\"head\")[0];if(r.type=\"text/css\",r.id=\"ssss\",r.styleSheet){var o=function(){try{r.styleSheet.cssText=n}catch(t){}};r.styleSheet.disabled?setTimeout(o,10):o()}else{var s=document.createTextNode(n);r.appendChild(s)}i.appendChild(r)}function y(t,e){Ir||(Ir=new Lr),Ir.addObserver(t,e)}function g(t,e){Ir&&Ir.unObserver(t,e)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={code:Fr[t].code,msg:Fr[t].msg};return kr(e).map(function(t){n[t]=e[t]}),n}function _(t,e,n,r,i){i?n(m(2,i),{format:r.format}):r.format?(t.list=r.list,t.format=r.format,t.styles=r.styles,e(t)):n(m(3))}function x(t){return new xr(function(e,n){if(t.list)return void e(t);if(t.json){var r=Nr.parseJson(t.json);return t.list=r,t.format=\"json\",void e(t)}if(t.stringContent&&!t.url)Nr.parse(t.stringContent,function(r,i){_(t,e,n,r,i)});else if(t.url)new Tr({url:t.url,type:\"text\"}).then(function(r){Nr.parse(r.res.response,function(r,i){_(t,e,n,r,i)})}).catch(function(e){var r=m(1,{statusText:e.statusText,status:e.status,type:e.type,message:\"http load error\",url:t.url});n(r)});else{var i=m(8);n(i)}})}function b(t,e){return!!(t.id&&t.id===e.id||t.language&&t.language===e.language)}var k=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t},w=function(t){return Object(k(t))},T={}.hasOwnProperty,S=function(t,e){return T.call(t,e)},O=e(function(t){var e=t.exports={version:\"2.6.12\"};\"number\"==typeof __e&&(__e=e)}),E=(O.version,e(function(t){var e=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=e)})),P=e(function(t){var e=E[\"__core-js_shared__\"]||(E[\"__core-js_shared__\"]={});(t.exports=function(t,n){return e[t]||(e[t]=void 0!==n?n:{})})(\"versions\",[]).push({version:O.version,mode:\"pure\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})}),j=0,M=Math.random(),A=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++j+M).toString(36))},C=P(\"keys\"),R=function(t){return C[t]||(C[t]=A(t))},N=R(\"IE_PROTO\"),L=Object.prototype,I=Object.getPrototypeOf||function(t){return t=w(t),S(t,N)?t[N]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?L:null},F=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t},z=function(t,e,n){if(F(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}},B=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t},D=function(t){if(!B(t))throw TypeError(t+\" is not an object!\");return t},H=function(t){try{return!!t()}catch(t){return!0}},V=!H(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}),W=E.document,G=B(W)&&B(W.createElement),U=function(t){return G?W.createElement(t):{}},$=!V&&!H(function(){return 7!=Object.defineProperty(U(\"div\"),\"a\",{get:function(){return 7}}).a}),K=function(t,e){if(!B(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!B(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!B(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!B(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")},J=Object.defineProperty,Y={f:V?Object.defineProperty:function(t,e,n){if(D(t),e=K(e,!0),D(n),$)try{return J(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},X=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},q=V?function(t,e,n){return Y.f(t,e,X(1,n))}:function(t,e,n){return t[e]=n,t},Z=function(t,e,n){var r,i,o,s=t&Z.F,a=t&Z.G,u=t&Z.S,c=t&Z.P,l=t&Z.B,f=t&Z.W,h=a?O:O[e]||(O[e]={}),d=h.prototype,p=a?E:u?E[e]:(E[e]||{}).prototype;a&&(n=e);for(r in n)(i=!s&&p&&void 0!==p[r])&&S(h,r)||(o=i?p[r]:n[r],h[r]=a&&\"function\"!=typeof p[r]?n[r]:l&&i?z(o,E):f&&p[r]==o?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(o):c&&\"function\"==typeof o?z(Function.call,o):o,c&&((h.virtual||(h.virtual={}))[r]=o,t&Z.R&&d&&!d[r]&&q(d,r,o)))};Z.F=1,Z.G=2,Z.S=4,Z.P=8,Z.B=16,Z.W=32,Z.U=64,Z.R=128;var Q=Z,tt=function(t,e){var n=(O.Object||{})[t]||Object[t],r={};r[t]=e(n),Q(Q.S+Q.F*H(function(){n(1)}),\"Object\",r)};tt(\"getPrototypeOf\",function(){return function(t){return I(w(t))}});var et=O.Object.getPrototypeOf,nt=t(e(function(t){t.exports={default:et,__esModule:!0}})),rt=t(e(function(t,e){e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}})),it=Math.ceil,ot=Math.floor,st=function(t){return isNaN(t=+t)?0:(t>0?ot:it)(t)},at=q,ut={},ct={}.toString,lt=function(t){return ct.call(t).slice(8,-1)},ft=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==lt(t)?t.split(\"\"):Object(t)},ht=function(t){return ft(k(t))},dt=Math.min,pt=function(t){return t>0?dt(st(t),9007199254740991):0},vt=Math.max,yt=Math.min,gt=function(t,e){return t=st(t),t<0?vt(t+e,0):yt(t,e)},mt=function(t){return function(e,n,r){var i,o=ht(e),s=pt(o.length),a=gt(r,s);if(t&&n!=n){for(;s>a;)if((i=o[a++])!=i)return!0}else for(;s>a;a++)if((t||a in o)&&o[a]===n)return t||a||0;return!t&&-1}}(!1),_t=R(\"IE_PROTO\"),xt=function(t,e){var n,r=ht(t),i=0,o=[];for(n in r)n!=_t&&S(r,n)&&o.push(n);for(;e.length>i;)S(r,n=e[i++])&&(~mt(o,n)||o.push(n));return o},bt=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\"),kt=Object.keys||function(t){return xt(t,bt)},wt=V?Object.defineProperties:function(t,e){D(t);for(var n,r=kt(e),i=r.length,o=0;i>o;)Y.f(t,n=r[o++],e[n]);return t},Tt=E.document,St=Tt&&Tt.documentElement,Ot=R(\"IE_PROTO\"),Et=function(){},Pt=function(){var t,e=U(\"iframe\"),n=bt.length;for(e.style.display=\"none\",St.appendChild(e),e.src=\"javascript:\",(t=e.contentWindow.document).open(),t.write(\"<script>document.F=Object<\\/script>\"),t.close(),Pt=t.F;n--;)delete Pt.prototype[bt[n]];return Pt()},jt=Object.create||function(t,e){var n;return null!==t?(Et.prototype=D(t),n=new Et,Et.prototype=null,n[Ot]=t):n=Pt(),void 0===e?n:wt(n,e)},Mt=e(function(t){var e=P(\"wks\"),n=E.Symbol,r=\"function\"==typeof n;(t.exports=function(t){return e[t]||(e[t]=r&&n[t]||(r?n:A)(\"Symbol.\"+t))}).store=e}),At=Y.f,Ct=Mt(\"toStringTag\"),Rt=function(t,e,n){t&&!S(t=n?t:t.prototype,Ct)&&At(t,Ct,{configurable:!0,value:e})},Nt={};q(Nt,Mt(\"iterator\"),function(){return this});var Lt=function(t,e,n){t.prototype=jt(Nt,{next:X(1,n)}),Rt(t,e+\" Iterator\")},It=Mt(\"iterator\"),Ft=!([].keys&&\"next\"in[].keys()),zt=function(){return this},Bt=function(t,e,n,r,i,o,s){Lt(n,e,r);var a,u,c,l=function(t){if(!Ft&&t in p)return p[t];switch(t){case\"keys\":case\"values\":return function(){return new n(this,t)}}return function(){return new n(this,t)}},f=e+\" Iterator\",h=\"values\"==i,d=!1,p=t.prototype,v=p[It]||p[\"@@iterator\"]||i&&p[i],y=v||l(i),g=i?h?l(\"entries\"):y:void 0,m=\"Array\"==e?p.entries||v:v;if(m&&(c=I(m.call(new t)))!==Object.prototype&&c.next&&Rt(c,f,!0),h&&v&&\"values\"!==v.name&&(d=!0,y=function(){return v.call(this)}),s&&(Ft||d||!p[It])&&q(p,It,y),ut[e]=y,ut[f]=zt,i)if(a={values:h?y:l(\"values\"),keys:o?y:l(\"keys\"),entries:g},s)for(u in a)u in p||at(p,u,a[u]);else Q(Q.P+Q.F*(Ft||d),e,a);return a},Dt=function(t){return function(e,n){var r,i,o=String(k(e)),s=st(n),a=o.length;return s<0||s>=a?t?\"\":void 0:(r=o.charCodeAt(s),r<55296||r>56319||s+1===a||(i=o.charCodeAt(s+1))<56320||i>57343?t?o.charAt(s):r:t?o.slice(s,s+2):i-56320+(r-55296<<10)+65536)}}(!0);Bt(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=Dt(e,n),this._i+=t.length,{value:t,done:!1})});var Ht=function(t,e){return{value:e,done:!!t}};Bt(Array,\"Array\",function(t,e){this._t=ht(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,Ht(1)):\"keys\"==e?Ht(0,n):\"values\"==e?Ht(0,t[n]):Ht(0,[n,t[n]])},\"values\");ut.Arguments=ut.Array;for(var Vt=Mt(\"toStringTag\"),Wt=\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList\".split(\",\"),Gt=0;Gt<Wt.length;Gt++){var Ut=Wt[Gt],$t=E[Ut],Kt=$t&&$t.prototype;Kt&&!Kt[Vt]&&q(Kt,Vt,Ut),ut[Ut]=ut.Array}var Jt={f:Mt},Yt=Jt.f(\"iterator\"),Xt=e(function(t){t.exports={default:Yt,__esModule:!0}});t(Xt);var qt=e(function(t){var e=A(\"meta\"),n=Y.f,r=0,i=Object.isExtensible||function(){return!0},o=!H(function(){return i(Object.preventExtensions({}))}),s=function(t){n(t,e,{value:{i:\"O\"+ ++r,w:{}}})},a=function(t,n){if(!B(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!S(t,e)){if(!i(t))return\"F\";if(!n)return\"E\";s(t)}return t[e].i},u=function(t,n){if(!S(t,e)){if(!i(t))return!0;if(!n)return!1;s(t)}return t[e].w},c=function(t){return o&&l.NEED&&i(t)&&!S(t,e)&&s(t),t},l=t.exports={KEY:e,NEED:!1,fastKey:a,getWeak:u,onFreeze:c}}),Zt=(qt.KEY,qt.NEED,qt.fastKey,qt.getWeak,qt.onFreeze,Y.f),Qt=function(t){var e=O.Symbol||(O.Symbol={});\"_\"==t.charAt(0)||t in e||Zt(e,t,{value:Jt.f(t)})},te={f:Object.getOwnPropertySymbols},ee={f:{}.propertyIsEnumerable},ne=function(t){var e=kt(t),n=te.f;if(n)for(var r,i=n(t),o=ee.f,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e},re=Array.isArray||function(t){return\"Array\"==lt(t)},ie=bt.concat(\"length\",\"prototype\"),oe={f:Object.getOwnPropertyNames||function(t){return xt(t,ie)}},se=oe.f,ae={}.toString,ue=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],ce=function(t){try{return se(t)}catch(t){return ue.slice()}},le={f:function(t){return ue&&\"[object Window]\"==ae.call(t)?ce(t):se(ht(t))}},fe=Object.getOwnPropertyDescriptor,he={f:V?fe:function(t,e){if(t=ht(t),e=K(e,!0),$)try{return fe(t,e)}catch(t){}if(S(t,e))return X(!ee.f.call(t,e),t[e])}},de=qt.KEY,pe=he.f,ve=Y.f,ye=le.f,ge=E.Symbol,me=E.JSON,_e=me&&me.stringify,xe=Mt(\"_hidden\"),be=Mt(\"toPrimitive\"),ke={}.propertyIsEnumerable,we=P(\"symbol-registry\"),Te=P(\"symbols\"),Se=P(\"op-symbols\"),Oe=Object.prototype,Ee=\"function\"==typeof ge&&!!te.f,Pe=E.QObject,je=!Pe||!Pe.prototype||!Pe.prototype.findChild,Me=V&&H(function(){return 7!=jt(ve({},\"a\",{get:function(){return ve(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var r=pe(Oe,e);r&&delete Oe[e],ve(t,e,n),r&&t!==Oe&&ve(Oe,e,r)}:ve,Ae=function(t){var e=Te[t]=jt(ge.prototype);return e._k=t,e},Ce=Ee&&\"symbol\"==typeof ge.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof ge},Re=function(t,e,n){return t===Oe&&Re(Se,e,n),D(t),e=K(e,!0),D(n),S(Te,e)?(n.enumerable?(S(t,xe)&&t[xe][e]&&(t[xe][e]=!1),n=jt(n,{enumerable:X(0,!1)})):(S(t,xe)||ve(t,xe,X(1,{})),t[xe][e]=!0),Me(t,e,n)):ve(t,e,n)},Ne=function(t,e){D(t);for(var n,r=ne(e=ht(e)),i=0,o=r.length;o>i;)Re(t,n=r[i++],e[n]);return t},Le=function(t,e){return void 0===e?jt(t):Ne(jt(t),e)},Ie=function(t){var e=ke.call(this,t=K(t,!0));return!(this===Oe&&S(Te,t)&&!S(Se,t))&&(!(e||!S(this,t)||!S(Te,t)||S(this,xe)&&this[xe][t])||e)},Fe=function(t,e){if(t=ht(t),e=K(e,!0),t!==Oe||!S(Te,e)||S(Se,e)){var n=pe(t,e);return!n||!S(Te,e)||S(t,xe)&&t[xe][e]||(n.enumerable=!0),n}},ze=function(t){for(var e,n=ye(ht(t)),r=[],i=0;n.length>i;)S(Te,e=n[i++])||e==xe||e==de||r.push(e);return r},Be=function(t){for(var e,n=t===Oe,r=ye(n?Se:ht(t)),i=[],o=0;r.length>o;)!S(Te,e=r[o++])||n&&!S(Oe,e)||i.push(Te[e]);return i};Ee||(at((ge=function(){if(this instanceof ge)throw TypeError(\"Symbol is not a constructor!\");var t=A(arguments.length>0?arguments[0]:void 0),e=function(n){this===Oe&&e.call(Se,n),S(this,xe)&&S(this[xe],t)&&(this[xe][t]=!1),Me(this,t,X(1,n))};return V&&je&&Me(Oe,t,{configurable:!0,set:e}),Ae(t)}).prototype,\"toString\",function(){return this._k}),he.f=Fe,Y.f=Re,oe.f=le.f=ze,ee.f=Ie,te.f=Be,Jt.f=function(t){return Ae(Mt(t))}),Q(Q.G+Q.W+Q.F*!Ee,{Symbol:ge});for(var De=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),He=0;De.length>He;)Mt(De[He++]);for(var Ve=kt(Mt.store),We=0;Ve.length>We;)Qt(Ve[We++]);Q(Q.S+Q.F*!Ee,\"Symbol\",{for:function(t){return S(we,t+=\"\")?we[t]:we[t]=ge(t)},keyFor:function(t){if(!Ce(t))throw TypeError(t+\" is not a symbol!\");for(var e in we)if(we[e]===t)return e},useSetter:function(){je=!0},useSimple:function(){je=!1}}),Q(Q.S+Q.F*!Ee,\"Object\",{create:Le,defineProperty:Re,defineProperties:Ne,getOwnPropertyDescriptor:Fe,getOwnPropertyNames:ze,getOwnPropertySymbols:Be});var Ge=H(function(){te.f(1)});Q(Q.S+Q.F*Ge,\"Object\",{getOwnPropertySymbols:function(t){return te.f(w(t))}}),me&&Q(Q.S+Q.F*(!Ee||H(function(){var t=ge();return\"[null]\"!=_e([t])||\"{}\"!=_e({a:t})||\"{}\"!=_e(Object(t))})),\"JSON\",{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(B(e)||void 0!==t)&&!Ce(t))return re(e)||(e=function(t,e){if(\"function\"==typeof n&&(e=n.call(this,t,e)),!Ce(e))return e}),r[1]=e,_e.apply(me,r)}}),ge.prototype[be]||q(ge.prototype,be,ge.prototype.valueOf),Rt(ge,\"Symbol\"),Rt(Math,\"Math\",!0),Rt(E.JSON,\"JSON\",!0),Qt(\"asyncIterator\"),Qt(\"observable\");var Ue=O.Symbol,$e=e(function(t){t.exports={default:Ue,__esModule:!0}});t($e);var Ke=e(function(t,e){function n(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=n(Xt),i=n($e),o=\"function\"==typeof i.default&&\"symbol\"==typeof r.default?function(t){return typeof t}:function(t){return t&&\"function\"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?\"symbol\":typeof t};e.default=\"function\"==typeof i.default&&\"symbol\"===o(r.default)?function(t){return void 0===t?\"undefined\":o(t)}:function(t){return t&&\"function\"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?\"symbol\":void 0===t?\"undefined\":o(t)}}),Je=t(Ke),Ye=t(e(function(t,e){e.__esModule=!0;var n=function(t){return t&&t.__esModule?t:{default:t}}(Ke);e.default=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!==(void 0===e?\"undefined\":(0,n.default)(e))&&\"function\"!=typeof e?t:e}}));Q(Q.S+Q.F*!V,\"Object\",{defineProperty:Y.f});var Xe=O.Object,qe=function(t,e,n){return Xe.defineProperty(t,e,n)},Ze=e(function(t){t.exports={default:qe,__esModule:!0}});t(Ze);var Qe=t(e(function(t,e){e.__esModule=!0;var n=function(t){return t&&t.__esModule?t:{default:t}}(Ze);e.default=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),(0,n.default)(t,i.key,i)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()})),tn=function(t,e){if(D(t),!B(e)&&null!==e)throw TypeError(e+\": can't set as prototype!\")},en={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(t,e,n){try{(n=z(Function.call,he.f(Object.prototype,\"__proto__\").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,r){return tn(t,r),e?t.__proto__=r:n(t,r),t}}({},!1):void 0),check:tn};Q(Q.S,\"Object\",{setPrototypeOf:en.set});var nn=O.Object.setPrototypeOf,rn=e(function(t){t.exports={default:nn,__esModule:!0}});t(rn),Q(Q.S,\"Object\",{create:jt});var on=O.Object,sn=function(t,e){return on.create(t,e)},an=e(function(t){t.exports={default:sn,__esModule:!0}});t(an);var un,cn,ln,fn=t(e(function(t,e){function n(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=n(rn),i=n(an),o=n(Ke);e.default=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+(void 0===e?\"undefined\":(0,o.default)(e)));t.prototype=(0,i.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(r.default?(0,r.default)(t,e):t.__proto__=e)}})),hn=Mt(\"toStringTag\"),dn=\"Arguments\"==lt(function(){return arguments}()),pn=function(t,e){try{return t[e]}catch(t){}},vn=function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=pn(e=Object(t),hn))?n:dn?lt(e):\"Object\"==(r=lt(e))&&\"function\"==typeof e.callee?\"Arguments\":r},yn=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+\": incorrect invocation!\");return t},gn=function(t,e,n,r){try{return r?e(D(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&D(i.call(t)),e}},mn=Mt(\"iterator\"),_n=Array.prototype,xn=function(t){return void 0!==t&&(ut.Array===t||_n[mn]===t)},bn=Mt(\"iterator\"),kn=O.getIteratorMethod=function(t){if(void 0!=t)return t[bn]||t[\"@@iterator\"]||ut[vn(t)]},wn=e(function(t){var e={},n={},r=t.exports=function(t,r,i,o,s){var a,u,c,l,f=s?function(){return t}:kn(t),h=z(i,o,r?2:1),d=0;if(\"function\"!=typeof f)throw TypeError(t+\" is not iterable!\");if(xn(f)){for(a=pt(t.length);a>d;d++)if((l=r?h(D(u=t[d])[0],u[1]):h(t[d]))===e||l===n)return l}else for(c=f.call(t);!(u=c.next()).done;)if((l=gn(c,h,u.value,r))===e||l===n)return l};r.BREAK=e,r.RETURN=n}),Tn=Mt(\"species\"),Sn=function(t,e){var n,r=D(t).constructor;return void 0===r||void 0==(n=D(r)[Tn])?e:F(n)},On=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)},En=E.process,Pn=E.setImmediate,jn=E.clearImmediate,Mn=E.MessageChannel,An=E.Dispatch,Cn=0,Rn={},Nn=function(){var t=+this;if(Rn.hasOwnProperty(t)){var e=Rn[t];delete Rn[t],e()}},Ln=function(t){Nn.call(t.data)};Pn&&jn||(Pn=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Rn[++Cn]=function(){On(\"function\"==typeof t?t:Function(t),e)},un(Cn),Cn},jn=function(t){delete Rn[t]},\"process\"==lt(En)?un=function(t){En.nextTick(z(Nn,t,1))}:An&&An.now?un=function(t){An.now(z(Nn,t,1))}:Mn?(ln=(cn=new Mn).port2,cn.port1.onmessage=Ln,un=z(ln.postMessage,ln,1)):E.addEventListener&&\"function\"==typeof postMessage&&!E.importScripts?(un=function(t){E.postMessage(t+\"\",\"*\")},E.addEventListener(\"message\",Ln,!1)):un=\"onreadystatechange\"in U(\"script\")?function(t){St.appendChild(U(\"script\")).onreadystatechange=function(){St.removeChild(this),Nn.call(t)}}:function(t){setTimeout(z(Nn,t,1),0)});var In={set:Pn,clear:jn},Fn=In.set,zn=E.MutationObserver||E.WebKitMutationObserver,Bn=E.process,Dn=E.Promise,Hn=\"process\"==lt(Bn),Vn={f:function(t){return new n(t)}},Wn=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}},Gn=E.navigator,Un=Gn&&Gn.userAgent||\"\",$n=function(t,e){if(D(t),B(e)&&e.constructor===t)return e;var n=Vn.f(t);return(0,n.resolve)(e),n.promise},Kn=Mt(\"species\"),Jn=Mt(\"iterator\"),Yn=!1;try{var Xn=[7][Jn]();Xn.return=function(){Yn=!0},Array.from(Xn,function(){throw 2})}catch(t){}var qn,Zn,Qn,tr,er=In.set,nr=function(){var t,e,n,r=function(){var r,i;for(Hn&&(r=Bn.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(Hn)n=function(){Bn.nextTick(r)};else if(!zn||E.navigator&&E.navigator.standalone)if(Dn&&Dn.resolve){var i=Dn.resolve(void 0);n=function(){i.then(r)}}else n=function(){Fn.call(E,r)};else{var o=!0,s=document.createTextNode(\"\");new zn(r).observe(s,{characterData:!0}),n=function(){s.data=o=!o}}return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}(),rr=E.TypeError,ir=E.process,or=ir&&ir.versions,sr=or&&or.v8||\"\",ar=E.Promise,ur=\"process\"==vn(ir),cr=function(){},lr=Zn=Vn.f,fr=!!function(){try{var t=ar.resolve(1),e=(t.constructor={})[Mt(\"species\")]=function(t){t(cr,cr)};return(ur||\"function\"==typeof PromiseRejectionEvent)&&t.then(cr)instanceof e&&0!==sr.indexOf(\"6.6\")&&-1===Un.indexOf(\"Chrome/66\")}catch(t){}}(),hr=function(t){var e;return!(!B(t)||\"function\"!=typeof(e=t.then))&&e},dr=function(t,e){if(!t._n){t._n=!0;var n=t._c;nr(function(){for(var r=t._v,i=1==t._s,o=0;n.length>o;)!function(e){var n,o,s,a=i?e.ok:e.fail,u=e.resolve,c=e.reject,l=e.domain;try{a?(i||(2==t._h&&yr(t),t._h=1),!0===a?n=r:(l&&l.enter(),n=a(r),l&&(l.exit(),s=!0)),n===e.promise?c(rr(\"Promise-chain cycle\")):(o=hr(n))?o.call(n,u,c):u(n)):c(r)}catch(t){l&&!s&&l.exit(),c(t)}}(n[o++]);t._c=[],t._n=!1,e&&!t._h&&pr(t)})}},pr=function(t){er.call(E,function(){var e,n,r,i=t._v,o=vr(t);if(o&&(e=Wn(function(){ur?ir.emit(\"unhandledRejection\",i,t):(n=E.onunhandledrejection)?n({promise:t,reason:i}):(r=E.console)&&r.error&&r.error(\"Unhandled promise rejection\",i)}),t._h=ur||vr(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},vr=function(t){return 1!==t._h&&0===(t._a||t._c).length},yr=function(t){er.call(E,function(){var e;ur?ir.emit(\"rejectionHandled\",t):(e=E.onrejectionhandled)&&e({promise:t,reason:t._v})})},gr=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),dr(e,!0))},mr=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw rr(\"Promise can't be resolved itself\");(e=hr(t))?nr(function(){var r={_w:n,_d:!1};try{e.call(t,z(mr,r,1),z(gr,r,1))}catch(t){gr.call(r,t)}}):(n._v=t,n._s=1,dr(n,!1))}catch(t){gr.call({_w:n,_d:!1},t)}}};fr||(ar=function(t){yn(this,ar,\"Promise\",\"_h\"),F(t),qn.call(this);try{t(z(mr,this,1),z(gr,this,1))}catch(t){gr.call(this,t)}},(qn=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=function(t,e,n){for(var r in e)n&&t[r]?t[r]=e[r]:q(t,r,e[r]);return t}(ar.prototype,{then:function(t,e){var n=lr(Sn(this,ar));return n.ok=\"function\"!=typeof t||t,n.fail=\"function\"==typeof e&&e,n.domain=ur?ir.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&dr(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),Qn=function(){var t=new qn;this.promise=t,this.resolve=z(mr,t,1),this.reject=z(gr,t,1)},Vn.f=lr=function(t){return t===ar||t===tr?new Qn(t):Zn(t)}),Q(Q.G+Q.W+Q.F*!fr,{Promise:ar}),Rt(ar,\"Promise\"),function(t){var e=\"function\"==typeof O[t]?O[t]:E[t];V&&e&&!e[Kn]&&Y.f(e,Kn,{configurable:!0,get:function(){return this}})}(\"Promise\"),tr=O.Promise,Q(Q.S+Q.F*!fr,\"Promise\",{reject:function(t){var e=lr(this);return(0,e.reject)(t),e.promise}}),Q(Q.S+!0*Q.F,\"Promise\",{resolve:function(t){return $n(this===tr?ar:this,t)}}),Q(Q.S+Q.F*!(fr&&function(t,e){if(!e&&!Yn)return!1;var n=!1;try{var r=[7],i=r[Jn]();i.next=function(){return{done:n=!0}},r[Jn]=function(){return i},t(r)}catch(t){}return n}(function(t){ar.all(t).catch(cr)})),\"Promise\",{all:function(t){var e=this,n=lr(e),r=n.resolve,i=n.reject,o=Wn(function(){var n=[],o=0,s=1;wn(t,!1,function(t){var a=o++,u=!1;n.push(void 0),s++,e.resolve(t).then(function(t){u||(u=!0,n[a]=t,--s||r(n))},i)}),--s||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=lr(e),r=n.reject,i=Wn(function(){wn(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}}),Q(Q.P+Q.R,\"Promise\",{finally:function(t){var e=Sn(this,O.Promise||E.Promise),n=\"function\"==typeof t;return this.then(n?function(n){return $n(e,t()).then(function(){return n})}:t,n?function(n){return $n(e,t()).then(function(){throw n})}:t)}}),Q(Q.S,\"Promise\",{try:function(t){var e=Vn.f(this),n=Wn(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}});var _r=O.Promise,xr=t(e(function(t){t.exports={default:_r,__esModule:!0}}));tt(\"keys\",function(){return function(t){return kt(w(t))}});var br=O.Object.keys,kr=t(e(function(t){t.exports={default:br,__esModule:!0}})),wr=e(function(t){function e(){}function n(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function r(t,e,r,i,o){if(\"function\"!=typeof r)throw new TypeError(\"The listener must be a function\");var s=new n(r,i||t,o),u=a?a+e:e;return t._events[u]?t._events[u].fn?t._events[u]=[t._events[u],s]:t._events[u].push(s):(t._events[u]=s,t._eventsCount++),t}function i(t,n){0==--t._eventsCount?t._events=new e:delete t._events[n]}function o(){this._events=new e,this._eventsCount=0}var s=Object.prototype.hasOwnProperty,a=\"~\";Object.create&&(e.prototype=Object.create(null),(new e).__proto__||(a=!1)),o.prototype.eventNames=function(){var t,e,n=[];if(0===this._eventsCount)return n;for(e in t=this._events)s.call(t,e)&&n.push(a?e.slice(1):e);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},o.prototype.listeners=function(t){var e=a?a+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,i=n.length,o=new Array(i);r<i;r++)o[r]=n[r].fn;return o},o.prototype.listenerCount=function(t){var e=a?a+t:t,n=this._events[e];return n?n.fn?1:n.length:0},o.prototype.emit=function(t,e,n,r,i,o){var s=a?a+t:t;if(!this._events[s])return!1;var u,c,l=this._events[s],f=arguments.length;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),f){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,n),!0;case 4:return l.fn.call(l.context,e,n,r),!0;case 5:return l.fn.call(l.context,e,n,r,i),!0;case 6:return l.fn.call(l.context,e,n,r,i,o),!0}for(c=1,u=new Array(f-1);c<f;c++)u[c-1]=arguments[c];l.fn.apply(l.context,u)}else{var h,d=l.length;for(c=0;c<d;c++)switch(l[c].once&&this.removeListener(t,l[c].fn,void 0,!0),f){case 1:l[c].fn.call(l[c].context);break;case 2:l[c].fn.call(l[c].context,e);break;case 3:l[c].fn.call(l[c].context,e,n);break;case 4:l[c].fn.call(l[c].context,e,n,r);break;default:if(!u)for(h=1,u=new Array(f-1);h<f;h++)u[h-1]=arguments[h];l[c].fn.apply(l[c].context,u)}}return!0},o.prototype.on=function(t,e,n){return r(this,t,e,n,!1)},o.prototype.once=function(t,e,n){return r(this,t,e,n,!0)},o.prototype.removeListener=function(t,e,n,r){var o=a?a+t:t;if(!this._events[o])return this;if(!e)return i(this,o),this;var s=this._events[o];if(s.fn)s.fn!==e||r&&!s.once||n&&s.context!==n||i(this,o);else{for(var u=0,c=[],l=s.length;u<l;u++)(s[u].fn!==e||r&&!s[u].once||n&&s[u].context!==n)&&c.push(s[u]);c.length?this._events[o]=1===c.length?c[0]:c:i(this,o)}return this},o.prototype.removeAllListeners=function(t){var n;return t?(n=a?a+t:t,this._events[n]&&i(this,n)):(this._events=new e,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=a,o.EventEmitter=o,t.exports=o}),Tr=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url,r=e.method,i=void 0===r?\"GET\":r,o=e.type,s=void 0===o?\"arraybuffer\":o,a=e.timeout,u=void 0===a?1e4:a,c=e.data,l=void 0===c?{}:c,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return rt(this,t),new xr(function(t,e){var r=new window.XMLHttpRequest,o=i.toUpperCase(),a=[];s&&(r.responseType=s),u&&(r.timeout=u);for(var c in l)a.push(\"k=\"+l[c]);if(r.onload=function(){200===r.status||206===r.status?t({context:f,res:r}):e(new Error({context:f,res:r,type:\"error\"}))},r.onerror=function(t){e(new Error({context:f,res:r,type:\"error\"}))},r.ontimeout=function(t){e(new Error({context:f,res:r,type:\"error\"}))},r.onabort=function(){e(new Error({context:f,res:r,type:\"error\"}))},\"GET\"===o)r.open(o,\"\"+n),r.send();else{if(\"post\"!==o)throw new Error(\"xhr \"+o+\" is not supported\");r.open(o,n),r.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"),r.send(a.join(\"&\"))}})},Sr=/^WEBVTT/,Or=/^STYLE+$/,Er=/^\\:\\:cue/,Pr=/^}+$/,jr=/^\\[Script Info\\].*/,Mr=[/[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}-->[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}/,/[0-9]{2}:[0-9]{2}\\.[0-9]{3}-->[0-9]{2}:[0-9]{2}\\.[0-9]{3}/,/[0-9]{2}\\.[0-9]{3}-->[0-9]{2}\\.[0-9]{3}/],Ar=/^Format:\\s/,Cr=/^Style:\\s/,Rr=/^Dialogue:\\s/,Nr=function(){function t(){rt(this,t)}return Qe(t,null,[{key:\"parseJson\",value:function(t){for(var e=[],n=0,r=0;r<t.length;r++){if(n>=50&&(n=0),0===n){var i={start:t[r].start,list:[t[r]],end:t[r].end};e.push(i)}else e[e.length-1].list.push(t[r]),e[e.length-1].end=t[r].end;n++}return e}},{key:\"parse\",value:function(e,n){var r=t.checkFormat(e);r||n({format:r});try{var i=[];\"ass\"===r?i=t.parseASS(e):\"vtt\"===r&&(i=t.parseVTT(e)),n({format:r,list:i.list,styles:i.styles})}catch(t){console.error(t),n({format:r},t)}}},{key:\"parseASSItem\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=t.split(\",\"),i={},s=\"\";try{var a=n.length-e.length;return s=a>0?n.splice(e.length-1,a+1).join(\",\")+\"\":n[n.length-1]+\"\",s=s.replace(/\\\\n+/g,\"\"),s=o(s),n[e.length-1]=s,e.map(function(t,e){\"end\"===t||\"start\"===t?i[t]=r(n[e].split(\":\")):\"text\"===t?i[t]=[n[e]]:\"layer\"===t?(i[t]=[n[e]],i.textTag=[n[e]]):i[t]=\"style\"===t?[n[e]]:Number(n[e])?Number(n[e]):n[e]}),i}catch(t){return console.error(t),{}}}},{key:\"parseASS\",value:function(e){for(var n=e.split(\"\\n\"),r=[],i=0,o=0,s=[],a=[],u=null;i<n.length;){if(Ar.test(n[i]))a=(a=n[i].replace(Ar,\"\").replace(/\\s+/g,\"\").split(\",\")).map(function(t){return t.toLocaleLowerCase()});else if(Cr.test(n[i]))s.push(n[i].replace(Cr,\"\").replace(/\\s+/g,\"\"));else if(Rr.test(n[i])){var c=t.parseASSItem(n[i].replace(Rr,\"\"),a);if(u&&c.start===u.start&&c.end===u.end)try{var l=u,f=l.text,h=l.textTag,d=l.style;f.push(c.text[0]),h.push(c.textTag[0]),d.push(c.style[0])}catch(t){console.error(t)}else{u=c;var p=null;o%50==0?((p={start:u.start,end:u.end,list:[]}).list.push(u),r.push(p)):((p=r[r.length-1]).end=u.end,p.list.push(u)),o++}}i++}return{list:r,style:{}}}},{key:\"parseVTTStyle\",value:function(t,e){var n=t.split(\":\");if(n.length>1){var r=n[0].trim().split(\"-\"),i=\"\";r.length>1?r.map(function(t,e){i+=0===e?t:t.charAt(0).toUpperCase()+t.slice(1)}):i=r[0],e[i]=n[1].trim().replace(/;$/,\"\")}return e}},{key:\"parseVTT\",value:function(t){for(var e=(t=t.replace(Sr,\"\")).split(\"\\n\"),n=[],r=0,o=0,a=null,u=!1,c=!1,l=null,f=null,h=[];r<e.length;){var d=s(r,e).trim();if(!d||u&&i(d))u=!d;else if(Er.test(d)&&Or.test(s(r-1,e).trim())){c=!0;var p=/\\((.+?)\\)/g.exec(d);f=p?p[1]:\"\",l=\"\"}else if(c)Pr.test(d)?(h.push({key:f,style:l}),l=null,f=null,c=!1):l+=d;else if(d){u=!1;var v=this.checkIsTime(e[r]);if(v){var y=this.parseVttTime(v);if(!a||y.start!==a.start||y.end!==a.end){(a=y).text=[],a.textTag=[];var g=null;o%50==0?((g={start:a.start,end:a.end,list:[]}).list.push(a),n.push(g)):((g=n[n.length-1]).end=a.end,g.list.push(a)),o++}}else if(a){var m=a,_=m.text,x=m.textTag,b=this.parseVttText(e[r]);_.push(b.text),x.push(b.tag)}u=!1}r++}return{list:n,styles:h}}},{key:\"checkIsTime\",value:function(t){t=t.replace(/\\s+/g,\"\");for(var e=0,n=null;e<Mr.length&&!(n=Mr[e].exec(t));)e++;return n?n[0]:null}},{key:\"parseVttText\",value:function(t){var e=/^(<?.+?>)/g.exec(t),n=\"\",r=\"default\";if(e){r=e[0].replace(/\\<|\\>|\\&/g,\"\");var i=RegExp(\"^<\"+r+\">(([\\\\s\\\\S])*?)</\"+r+\">$\").exec(t);i?n=i[1]:(n=t,r=\"\")}else n=t;for(var s=/<(\\w+).(\\w+)>/g,a=s.exec(n);a&&a.length>2;)n=n.replace(a[0],\"<\"+a[1]+' class=\"'+a[2]+'\">'),a=s.exec(n);return{tag:r,text:o(n.replace(/\\\\n+/g,\"<br/>\"))}}},{key:\"parseVttTime\",value:function(t){var e=t.split(\"--\\x3e\"),n=void 0,i=0;if(2===e.length){var o=e[0].split(\":\"),s=e[1].split(\":\");n=r(o),i=r(s)}return{start:n,end:i,time:t}}},{key:\"isVTT\",value:function(t){return Sr.test(t)}},{key:\"isASS\",value:function(t){return jr.test(t)}},{key:\"checkFormat\",value:function(t){return t?Sr.test(t)?\"vtt\":jr.test(t)?\"ass\":null:null}}]),t}(),Lr=function(){function t(){var e=this;rt(this,t),this.__handlers=[],window.ResizeObserver&&(this.observer=new window.ResizeObserver(function(t){e.__trigger(t)}))}return Qe(t,[{key:\"addObserver\",value:function(t,e){if(this.observer){this.observer&&this.observer.observe(t);for(var n=this.__handlers,r=-1,i=0;i<n.length;i++)n[i]&&t===n[i].target&&(r=i);r>-1?this.__handlers[r].handler.push(e):this.__handlers.push({target:t,handler:[e]})}}},{key:\"unObserver\",value:function(t){var e=-1;this.__handlers.map(function(n,r){t===n.target&&(e=r)}),this.observer&&this.observer.unobserve(t),e>-1&&this.__handlers.splice(e,1)}},{key:\"destroyObserver\",value:function(){this.observer&&this.observer.disconnect(),this.observer=null,this.__handlers=null}},{key:\"__runHandler\",value:function(t,e){for(var n=this.__handlers,r=0;r<n.length;r++)if(n[r]&&t===n[r].target){n[r].handler&&n[r].handler.map(function(n){try{n(t,e)}catch(t){console.error(t)}});break}}},{key:\"__trigger\",value:function(t){var e=this;t.map(function(t){var n=t.contentRect;e.__runHandler(t.target,n)})}}]),t}(),Ir=null;!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&\"undefined\"!=typeof document){var r=document.head||document.getElementsByTagName(\"head\")[0],i=document.createElement(\"style\");i.type=\"text/css\",\"top\"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}('xg-text-track.xg-text-track {\\n font-family: \"PingFang SC\",\"SF Pro SC\",\"SF Pro Text\",\"SF Pro Icons\",\"Helvetica Neue\",\"Helvetica\",\"Arial\",sans-serif;\\n -webkit-font-smoothing: antialiased;\\n position: absolute;\\n bottom: 0;\\n color: #fff;\\n left: 0;\\n right: 0;\\n pointer-events: none;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center; }\\n xg-text-track.xg-text-track.text-track-no-fitvideo {\\n margin-bottom: 2%; }\\n xg-text-track.xg-text-track.text-track-hide {\\n opacity: 0;\\n visibility: hidden; }\\n xg-text-track.xg-text-track.text-track-show {\\n opacity: 1;\\n visibility: visible; }\\n xg-text-track.xg-text-track xg-text-track-inner {\\n display: block;\\n max-width: 92%; }\\n xg-text-track.xg-text-track xg-text-track-span {\\n display: -webkit-box;\\n text-align: center;\\n text-overflow: ellipsis;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n padding: 1px 4px;\\n -webkit-line-clamp: 1;\\n line-height: 120%;\\n word-break: break-word; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-deputy {\\n font-size: 75%; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-single {\\n -webkit-line-clamp: 1; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-double {\\n -webkit-line-clamp: 2; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-three {\\n -webkit-line-clamp: 3; }\\n xg-text-track.xg-text-track.text-track-bg xg-text-track-inner {\\n background-color: rgba(0, 0, 0, .54);\\n border-radius: 2px; }\\n xg-text-track.xg-text-track.text-track-stroke xg-text-track-inner {\\n background-color: none;\\n border-radius: 0;\\n text-shadow: -1px 1px 0 rgba(0, 0, 0, .7), 1px 1px 0 rgba(0, 0, 0, .7), 1px -1px 0 rgba(0, 0, 0, .7), -1px -1px 0 rgba(0, 0, 0, .7); }\\n');var Fr=[{code:0,msg:\"SUCCESS\"},{code:1,msg:\"LOAD_ERROR\"},{code:2,msg:\"PARSER_ERROR\"},{code:3,msg:\"FORMAT_NOT_SUPPORTED\"},{code:4,msg:\"ID_OR_LANGUAGE_NOT_EXIST\"},{code:5,msg:\"PARAMETERS_ERROR\"},{code:6,msg:\"ABORT\"},{code:7,msg:\"UNKNOWN\"},{code:8,msg:\"DATA_ERROR:subtitle.url is null\"}],zr={RESIZE:\"resize\"},Br=!1;return function(t){function e(t){rt(this,e);var n=Ye(this,(e.__proto__||nt(e)).call(this));return Br=p(),n.currentText=null,n.textTrack=[],n._cid=-1,n._gid=-1,n._cids=[],n._iId=null,n._iC=0,n.player=null,n.root=null,n.config={line:\"double\",bottom:0,mode:\"stroke\",defaultOpen:!1,baseSizeX:49,baseSizeY:28,minSize:16,minMobileSize:13,fitVideo:!0,offsetBottom:2,fontColor:\"#fff\"},n._ctime=0,n._loadingTrack={},kr(n.config).map(function(e){void 0!==t[e]&&null!==t[e]&&(n.config[e]=t[e])}),n._isOpen=!1,n._videoMeta={scale:0,videoHeight:0,videoWidth:0,lwidth:0,lheight:0,vWidth:0,vHeight:0,vBottom:0,vLeft:0,marginBottom:0},t.subTitles&&\"Array\"===h(t.subTitles)?(t.player&&n.attachPlayer(t.player),n.setSubTitles(t.subTitles,n.config.defaultOpen),n):Ye(n)}return fn(e,t),Qe(e,[{key:\"version\",get:function(){return\"1.0.12\"}}]),Qe(e,[{key:\"setSubTitles\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=this._isOpen||n;r&&this.innerRoot&&this.switchOff(),this.currentText=null,this.textTrack=[],t.map(function(t){var n={};kr(t).map(function(e){n[e]=t[e]}),n.isDefault&&(e.currentText=n),e.textTrack.push(n)}),this.currentText&&x(this.currentText).then(function(t){e.addStyles(t),i&&e.switch()})}},{key:\"addStyles\",value:function(t){var e=t.styles,n=t.format;e&&\"vtt\"===n&&(e.map(function(t){t.key||(t.key=\"xg-text-track-span\")}),v(e,\"xg-text-track\"))}},{key:\"attachPlayer\",value:function(t){var e=this;if(t){this.player&&this.detachPlayer();var n=this.config,r=n.fontColor,i=n.mode,o=n.fitVideo;this.player=t,this.root=document.createElement(\"xg-text-track\"),this.root.className=\"xg-text-track\",!this._isOpen&&u(this.root,\"text-track-hide\"),!o&&u(this.root,\"text-track-no-fitvideo\"),i&&u(this.root,\"text-track-\"+i),this.innerRoot=document.createElement(\"xg-text-track-inner\"),this.root.appendChild(this.innerRoot),r&&(this.root.style.color=r),this.currentText&&[\"language\",\"id\",\"label\"].map(function(t){e.root.setAttribute(\"data-\"+t,e.currentText[t]||\"\")}),this.player.root.appendChild(this.root),[\"destroy\",\"__onTimeupdate\",\"_onResize\"].map(function(t){e[t]=e[t].bind(e)}),this.player.on(\"destroy\",this.destroy),this.player.on(\"timeupdate\",this.__onTimeupdate),this._isOpen&&this.switch(),y(t.root,this._onResize)}}},{key:\"detachPlayer\",value:function(){var t=this.player;t&&(t.off(\"destroy\",this.destroy),t.off(\"timeupdate\",this.__onTimeupdate),t.root&&(g(t.root,this._onResize),t.root.removeChild(this.root)),this.innerRoot=null,this.root=null,this.player=null)}},{key:\"switch\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:\"\",language:\"\"};return this._loadingTrack=e,new xr(function(n,r){if(!e.id&&!e.language){if(t.currentText){t._loadingTrack={},t._updateCurrent(t.currentText),t._isOpen=!0,t.show();var i=m(0,{message:\"switch default subtitle success\"});return void n(i)}var o=m(5,{message:\"no default subtitle\"});return void r(o)}if(t.currentText&&b(e,t.currentText))t._loadingTrack={},t._updateCurrent(t.currentText),t._isOpen=!0,t.show(),n(m(0));else{for(var s=null,a=0;a<t.textTrack.length;a++)if(b(e,t.textTrack[a])){s=t.textTrack[a];break}if(s)s.list?(t._loadingTrack={},t._updateCurrent(s),t._isOpen=!0,t.show(),n(m(0))):x(s).then(function(e){if(t.addStyles(e),t._loadingTrack.id===s.id||t._loadingTrack.language===e.language)t._loadingTrack={},t._updateCurrent(e),t._isOpen=!0,t.show(),n(m(0));else{var i=m(6,{message:\"check _loadingTrack fail id: \"+t._loadingTrack.id+\" nextSubtitle:\"+e.id});console.trace(i),r(i)}}).catch(function(t){r(t)});else{var u=m(4,new Error(\"The is no subtitle with id:[{\"+e.id+\"}] or language:[\"+e.language+\"]\"));console.trace(u),r(u)}}})}},{key:\"switchOff\",value:function(){this._isOpen=!1,this.hide()}},{key:\"_updateCurrent\",value:function(t){var e=this;if(this.root){this.currentText=t,[\"language\",\"id\",\"label\"].map(function(t){e.root.setAttribute(\"data-\"+t,e.currentText[t]||\"\")}),this.__remove(this._cids);var n=this.player.currentTime;this._cids=[],this._gid=-1,this._cid=-1,this._update(n)}}},{key:\"__loadAll\",value:function(){this.textTrack.map(function(t){x(t)})}},{key:\"getDelCid\",value:function(t,e){for(var n=[],r=0;r<t.length;r++)e.includes(t[r])||n.push(t[r]);return n}},{key:\"getNewCid\",value:function(t,e){for(var n=[],r=0;r<e.length;r++)t.includes(e[r])||n.push(e[r]);return n}},{key:\"_update\",value:function(t){var e=this,n=l(t,this.currentText.list,this._gid),r=[];if(n>-1&&(r=f(t,this.currentText.list[n].list,this._cid)),r.length<1)return this._cids.length>0&&this.__remove(this._cids),void(this._cids=[]);if(this._cids!==r||n!==this._gid){this._gid=n,this._cid=r[0];var i=this.getDelCid(this._cids,r),o=this.getNewCid(this._cids,r);this._cids=r,this.__remove(i);var s=[];o.map(function(t){var r=e.currentText.list[n].list[t];r.index=t,s.push(r)}),this.__render(s,t)}}},{key:\"__onTimeupdate\",value:function(){if(this._isOpen){var t=this.player.video,e=t.videoWidth,n=t.videoHeight;!this._videoMeta.scale&&e&&n&&this._onResize(this.player.root);var r=this.player.currentTime;Math.round(Math.abs(1e3*r-this._ctime))<200||(this._ctime=1e3*r,this.currentText&&this.currentText.list&&this._update(r))}}},{key:\"_onResize\",value:function(t){var e=this._videoMeta;if(t&&t instanceof window.Element||(t=this.player.root),this._iId&&(clearTimeout(this._iId),this._iId=null),!e.scale){if(!this.player.video)return;var n=this.player.video,r=n.videoWidth,i=n.videoHeight;if(!r||!i)return;e.videoWidth=r,e.videoHeight=i,e.scale=parseInt(i/r*100,10)}this.__startResize(t)}},{key:\"resize\",value:function(t,e){var n=this,r=this.config,i=r.baseSizeX,o=r.baseSizeY,s=r.minMobileSize,a=r.minSize,u=r.fitVideo,c=r.offsetBottom,l=this._videoMeta.scale;this._videoMeta.lwidth=t,this._videoMeta.lheight=e;var f=void 0,h=0;e/t*100>=l?(h=parseInt(l*t,10)/100,f=t):(h=e,f=parseInt(e/l*100,10)),this._videoMeta.vWidth=f,this._videoMeta.vHeight=h;var d=0,p=0;l>120?(d=o,p=parseInt(d*h/1080,10)):(d=i,p=parseInt(d*f/1920,10));var v=Br?s:a,y={fontSize:p=p<v?v:p>d?d:p},g=parseInt((e-h)/2,10),m=parseInt((t-f)/2,10),_=parseInt(h*c,10)/100;this._videoMeta.vBottom=g,this._videoMeta.vLeft=m,this._videoMeta.marginBottom=_,u&&(y.bottom=g+_,y.left=y.right=m),kr(y).map(function(t){n.root.style[t]=y[t]+\"px\"}),this.emit(zr.RESIZE,{vLeft:m,vBottom:g,marginBottom:_,vWidth:f,vHeight:h,fontSize:p,scale:l})}},{key:\"__startResize\",value:function(t){var e=this,n=t.getBoundingClientRect(),r=this._videoMeta,i=n.width,o=n.height;if(this._iId&&(clearTimeout(this._iId),this._iId=null),i>0&&o>0&&(i!==r.lwidth||o!==r.lheight))this._iC=0,this.resize(i,o);else{if(this._iC>=5)return void(this._iC=0);this._iC++,this._iId=setTimeout(function(){e.__startResize(t)},50)}}},{key:\"__remove\",value:function(t){var e=this;if(t&&!(t.length<1)){for(var n=this.innerRoot.children,r=[],i=0;i<n.length;i++){var o=Number(n[i].getAttribute(\"data-index\"));t.includes(o)&&r.push(n[i])}r.map(function(t){e.innerRoot.removeChild(t)})}}},{key:\"__render\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.length>0&&e.map(function(e){var n=\"text-track-\"+t.config.line;e.text.map(function(r,i){i>0&&(n+=\" text-track-deputy\");var o={\"data-start\":e.start,\"data-end\":e.end,\"data-index\":e.index};t.innerRoot.appendChild(d(\"xg-text-track-span\",r,o,n))})})}},{key:\"show\",value:function(){c(this.root,\"text-track-hide\")}},{key:\"hide\",value:function(){u(this.root,\"text-track-hide\"),this.innerRoot.innerHTML=\"\"}},{key:\"destroy\",value:function(){this.detachPlayer(),this.removeAllListeners(),this.player=null,this.textTrack=null}},{key:\"marginBottom\",get:function(){var t=this._videoMeta,e=t.bottom,n=t.marginBottom;return this.config.fitVideo?e+n:n}}]),e}(wr)});\n//# sourceMappingURL=index.min.js.map\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports[\"danmu.js\"]=t():e[\"danmu.js\"]=t()}(window,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=4)}([function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i={createDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"div\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"\",o=document.createElement(e);return o.className=i,o.innerHTML=t,Object.keys(n).forEach((function(t){var i=t,r=n[t];\"video\"===e||\"audio\"===e?r&&o.setAttribute(i,r):o.setAttribute(i,r)})),o},hasClass:function(e,t){return e.classList?Array.prototype.some.call(e.classList,(function(e){return e===t})):!!e.className.match(new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\"))},addClass:function(e,t){e.classList?t.replace(/(^\\s+|\\s+$)/g,\"\").split(/\\s+/g).forEach((function(t){t&&e.classList.add(t)})):i.hasClass(e,t)||(e.className+=\" \"+t)},removeClass:function(e,t){e.classList?t.split(/\\s+/g).forEach((function(t){e.classList.remove(t)})):i.hasClass(e,t)&&t.split(/\\s+/g).forEach((function(t){var n=new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\");e.className=e.className.replace(n,\" \")}))},toggleClass:function(e,t){t.split(/\\s+/g).forEach((function(t){i.hasClass(e,t)?i.removeClass(e,t):i.addClass(e,t)}))},findDom:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=arguments[1],n=void 0;try{n=e.querySelector(t)}catch(i){t.startsWith(\"#\")&&(n=e.getElementById(t.slice(1)))}return n},deepCopy:function(e,t){if(\"Object\"===i.typeOf(t)&&\"Object\"===i.typeOf(e))return Object.keys(t).forEach((function(n){\"Object\"!==i.typeOf(t[n])||t[n]instanceof Node?\"Array\"===i.typeOf(t[n])?e[n]=\"Array\"===i.typeOf(e[n])?e[n].concat(t[n]):t[n]:e[n]=t[n]:e[n]?i.deepCopy(e[n],t[n]):e[n]=t[n]})),e},typeOf:function(e){return Object.prototype.toString.call(e).match(/([^\\s.*]+)(?=]$)/g)[0]},copyDom:function(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,(function(e){t.setAttribute(e.name,e.value)})),e.innerHTML&&(t.innerHTML=e.innerHTML),t}return\"\"},formatTime:function(e){var t=Math.floor(e);return 1e3*t+(e-t)},offInDestroy:function(e,t,n,i){e.once(i,(function o(){e.off(t,n),e.off(i,o)}))},on:function(e,t,n,o){if(o)e.on(t,n),i.offInDestroy(e,t,n,o);else{e.on(t,(function i(o){n(o),e.off(t,i)}))}},style:function(e,t,n){var i=e.style;try{i[t]=n}catch(e){i.setProperty(t,n)}}};t.default=i,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=n(26),a=(i=r)&&i.__esModule?i:{default:i};var s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e)}return o(e,[{key:\"setLogger\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";this.logger=new a.default(e+\".js\")}}]),e}();t.default=s,e.exports=t.default},function(e,t,n){\"use strict\";var i=n(19)();e.exports=function(e){return e!==i&&null!==e}},function(e,t,n){\"use strict\";e.exports=function(e){return null!=e}},function(e,t,n){e.exports=n(5)},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=n(6),r=(i=o)&&i.__esModule?i:{default:i};n(34),t.default=r.default,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=f(n(7)),r=f(n(1)),a=f(n(27)),s=f(n(31)),l=f(n(0)),u=n(32),c=n(33);function f(e){return e&&e.__esModule?e:{default:e}}function h(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}var d=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=h(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));n.setLogger(\"danmu\"),n.logger&&n.logger.info(\"danmu.js version: \"+u.version);var i=n;if(i.config=l.default.deepCopy({overlap:!1,area:{start:0,end:1},live:!1,comments:[],direction:\"r2l\",needResizeObserver:!1},e),i.hideArr=[],i.domObj=new s.default,(0,o.default)(i),i.config.comments.forEach((function(e){e.duration=e.duration?e.duration:5e3,e.mode||(e.mode=\"scroll\")})),!i.config.container||1!==i.config.container.nodeType)return i.emit(\"error\",\"container id can't be empty\"),!1,h(n,!1);if(i.container=i.config.container,i.config.containerStyle){var r=i.config.containerStyle;Object.keys(r).forEach((function(e){i.container.style[e]=r[e]}))}return i.live=i.config.live,i.player=i.config.player,i.direction=i.config.direction,l.default.addClass(i.container,\"danmu\"),i.bulletBtn=new a.default(i),i.isReady=!0,i.emit(\"ready\"),n.logger&&n.logger.info(\"ready\"),n.addResizeObserver(),n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"addResizeObserver\",value:function(){var e=this;this.config.needResizeObserver&&(0,c.addObserver)(this.container,(function(){e.logger&&e.logger.info(\"needResizeObserver\"),e.resize()}))}},{key:\"start\",value:function(){this.logger&&this.logger.info(\"start\"),this.bulletBtn.main.start()}},{key:\"pause\",value:function(){this.logger&&this.logger.info(\"pause\"),this.bulletBtn.main.pause()}},{key:\"play\",value:function(){this.logger&&this.logger.info(\"play\"),this.bulletBtn.main.play()}},{key:\"stop\",value:function(){this.logger&&this.logger.info(\"stop\"),this.bulletBtn.main.stop()}},{key:\"clear\",value:function(){this.logger&&this.logger.info(\"clear\"),this.bulletBtn.main.clear()}},{key:\"destroy\",value:function(){for(var e in(0,c.unObserver)(this.container),this.logger&&this.logger.info(\"destroy\"),this.stop(),this.bulletBtn.destroy(),this.domObj.destroy(),this)delete this[e];this.emit(\"destroy\")}},{key:\"sendComment\",value:function(e){this.logger&&this.logger.info(\"sendComment: \"+(e.txt||\"[DOM Element]\")),e.duration||(e.duration=15e3),e&&e.id&&e.duration&&(e.el||e.txt)&&(e.duration=e.duration?e.duration:5e3,e.style||(e.style={opacity:void 0,fontSize:void 0}),e.style&&(this.opacity&&this.opacity!==e.style.opacity&&(e.style.opacity=this.opacity),this.fontSize&&this.fontSize!==e.style.fontSize&&(e.style.fontSize=this.fontSize),this.like&&(e.like=e.like?e.like:this.like)),e.prior||e.realTime?(this.bulletBtn.main.data.unshift(e),e.realTime&&(this.bulletBtn.main.readData(),this.bulletBtn.main.dataHandle())):this.bulletBtn.main.data.push(e))}},{key:\"setCommentID\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setCommentID: oldID \"+e+\" newID \"+t);var i=this.container.getBoundingClientRect();e&&t&&(this.bulletBtn.main.data.some((function(n){return n.id===e&&(n.id=t,!0)})),this.bulletBtn.main.queue.some((function(o){return o.id===e&&(o.id=t,o.pauseMove(i),\"paused\"!==n.bulletBtn.main.status&&o.startMove(i),!0)})))}},{key:\"setCommentDuration\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setCommentDuration: id \"+e+\" duration \"+t);var i=this.container.getBoundingClientRect();e&&t&&(t=t||5e3,this.bulletBtn.main.data.some((function(n){return n.id===e&&(n.duration=t,!0)})),this.bulletBtn.main.queue.some((function(o){return o.id===e&&(o.duration=t,o.pauseMove(i),\"paused\"!==n.bulletBtn.main.status&&o.startMove(i),!0)})))}},{key:\"setCommentLike\",value:function(e,t){this.logger&&this.logger.info(\"setCommentLike: id \"+e+\" like \"+t);var n=this.container.getBoundingClientRect();this.like=t,e&&t&&(this.bulletBtn.main.data.some((function(n){return n.id===e&&(n.like=t,!0)})),this.bulletBtn.main.queue.some((function(i){return i.id===e&&(i.pauseMove(n),i.setLikeDom(t.el,t.style),\"paused\"!==i.danmu.bulletBtn.main.status&&i.startMove(n),!0)})))}},{key:\"restartComment\",value:function(e){this.logger&&this.logger.info(\"restartComment: id \"+e),this.mouseControl=!1;var t=this.container.getBoundingClientRect();e&&this.bulletBtn.main.queue.some((function(n){return n.id===e&&(\"paused\"!==n.danmu.bulletBtn.main.status?n.startMove(t,!0):n.status=\"paused\",!0)}))}},{key:\"freezeComment\",value:function(e){this.logger&&this.logger.info(\"freezeComment: id \"+e),this.mouseControl=!0;var t=this.container.getBoundingClientRect();e&&this.bulletBtn.main.queue.some((function(n){return n.id===e&&(n.status=\"forcedPause\",n.pauseMove(t),n.el&&n.el.style&&l.default.style(n.el,\"zIndex\",10),!0)}))}},{key:\"removeComment\",value:function(e){this.logger&&this.logger.info(\"removeComment: id \"+e),e&&(this.bulletBtn.main.queue.some((function(t){return t.id===e&&(t.remove(),!0)})),this.bulletBtn.main.data=this.bulletBtn.main.data.filter((function(t){return t.id!==e})))}},{key:\"updateComments\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t&&(this.bulletBtn.main.data=[]),this.bulletBtn.main.data=this.bulletBtn.main.data.concat(e)}},{key:\"setAllDuration\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\",t=arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];this.logger&&this.logger.info(\"setAllDuration: mode \"+e+\" duration \"+t+\" force \"+n);var i=this.container.getBoundingClientRect();t&&(t=t||5e3,n&&(this.bulletBtn.main.forceDuration=t),this.bulletBtn.main.data.forEach((function(n){e===n.mode&&(n.duration=t)})),this.bulletBtn.main.queue.forEach((function(n){e===n.mode&&(n.duration=t,n.pauseMove(i),\"paused\"!==n.danmu.bulletBtn.main.status&&n.startMove(i))})))}},{key:\"setOpacity\",value:function(e){this.logger&&this.logger.info(\"setOpacity: opacity \"+e),this.container.style.opacity=e}},{key:\"setFontSize\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setFontSize: size \"+e+\" channelSize \"+t),this.fontSize=e+\"px\",e&&(this.bulletBtn.main.data.forEach((function(e){e.style&&(e.style.fontSize=n.fontSize)})),this.bulletBtn.main.queue.forEach((function(e){e.options.style||(e.options.style={}),e.options.style.fontSize=n.fontSize,e.setFontSize(n.fontSize),t&&(e.top=e.channel_id[0]*t,e.topInit())}))),t&&(this.config.channelSize=t,this.bulletBtn.main.channel.resize(!0))}},{key:\"setArea\",value:function(e){this.logger&&this.logger.info(\"setArea: area \"+e),this.config.area=e,this.bulletBtn.main.channel.resize(!0)}},{key:\"hide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\";this.logger&&this.logger.info(\"hide: mode \"+e),this.hideArr.indexOf(e)<0&&this.hideArr.push(e);var t=this.bulletBtn.main.queue.filter((function(t){return e===t.mode||\"color\"===e&&t.color}));t.forEach((function(e){return e.remove()}))}},{key:\"show\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\";this.logger&&this.logger.info(\"show: mode \"+e);var t=this.hideArr.indexOf(e);t>-1&&this.hideArr.splice(t,1)}},{key:\"setDirection\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"r2l\";this.logger&&this.logger.info(\"setDirection: direction \"+e),this.emit(\"changeDirection\",e)}},{key:\"resize\",value:function(){this.logger&&this.logger.info(\"resize\"),this.emit(\"channel_resize\")}}]),t}(r.default);t.default=d,e.exports=t.default},function(e,t,n){\"use strict\";var i,o,r,a,s,l,u,c=n(8),f=n(25),h=Function.prototype.apply,d=Function.prototype.call,g=Object.create,p=Object.defineProperty,m=Object.defineProperties,v=Object.prototype.hasOwnProperty,b={configurable:!0,enumerable:!1,writable:!0};o=function(e,t){var n,o;return f(t),o=this,i.call(this,e,n=function(){r.call(o,e,n),h.call(t,this,arguments)}),n.__eeOnceListener__=t,this},s={on:i=function(e,t){var n;return f(t),v.call(this,\"__ee__\")?n=this.__ee__:(n=b.value=g(null),p(this,\"__ee__\",b),b.value=null),n[e]?\"object\"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:o,off:r=function(e,t){var n,i,o,r;if(f(t),!v.call(this,\"__ee__\"))return this;if(!(n=this.__ee__)[e])return this;if(\"object\"==typeof(i=n[e]))for(r=0;o=i[r];++r)o!==t&&o.__eeOnceListener__!==t||(2===i.length?n[e]=i[r?0:1]:i.splice(r,1));else i!==t&&i.__eeOnceListener__!==t||delete n[e];return this},emit:a=function(e){var t,n,i,o,r;if(v.call(this,\"__ee__\")&&(o=this.__ee__[e]))if(\"object\"==typeof o){for(n=arguments.length,r=new Array(n-1),t=1;t<n;++t)r[t-1]=arguments[t];for(o=o.slice(),t=0;i=o[t];++t)h.call(i,this,r)}else switch(arguments.length){case 1:d.call(o,this);break;case 2:d.call(o,this,arguments[1]);break;case 3:d.call(o,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,r=new Array(n-1),t=1;t<n;++t)r[t-1]=arguments[t];h.call(o,this,r)}}},l={on:c(i),once:c(o),off:c(r),emit:c(a)},u=m({},l),e.exports=t=function(e){return null==e?g(u):m(Object(e),l)},t.methods=s},function(e,t,n){\"use strict\";var i=n(3),o=n(9),r=n(13),a=n(21),s=n(22);(e.exports=function(e,t){var n,o,l,u,c;return arguments.length<2||\"string\"!=typeof e?(u=t,t=e,e=null):u=arguments[2],i(e)?(n=s.call(e,\"c\"),o=s.call(e,\"e\"),l=s.call(e,\"w\")):(n=l=!0,o=!1),c={value:t,configurable:n,enumerable:o,writable:l},u?r(a(u),c):c}).gs=function(e,t,n){var l,u,c,f;return\"string\"!=typeof e?(c=n,n=t,t=e,e=null):c=arguments[3],i(t)?o(t)?i(n)?o(n)||(c=n,n=void 0):n=void 0:(c=t,t=n=void 0):t=void 0,i(e)?(l=s.call(e,\"c\"),u=s.call(e,\"e\")):(l=!0,u=!1),f={get:t,set:n,configurable:l,enumerable:u},c?r(a(c),f):f}},function(e,t,n){\"use strict\";var i=n(10),o=/^\\s*class[\\s{/}]/,r=Function.prototype.toString;e.exports=function(e){return!!i(e)&&!o.test(r.call(e))}},function(e,t,n){\"use strict\";var i=n(11);e.exports=function(e){if(\"function\"!=typeof e)return!1;if(!hasOwnProperty.call(e,\"length\"))return!1;try{if(\"number\"!=typeof e.length)return!1;if(\"function\"!=typeof e.call)return!1;if(\"function\"!=typeof e.apply)return!1}catch(e){return!1}return!i(e)}},function(e,t,n){\"use strict\";var i=n(12);e.exports=function(e){if(!i(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(e){return!1}}},function(e,t,n){\"use strict\";var i=n(3),o={object:!0,function:!0,undefined:!0};e.exports=function(e){return!!i(e)&&hasOwnProperty.call(o,typeof e)}},function(e,t,n){\"use strict\";e.exports=n(14)()?Object.assign:n(15)},function(e,t,n){\"use strict\";e.exports=function(){var e,t=Object.assign;return\"function\"==typeof t&&(t(e={foo:\"raz\"},{bar:\"dwa\"},{trzy:\"trzy\"}),e.foo+e.bar+e.trzy===\"razdwatrzy\")}},function(e,t,n){\"use strict\";var i=n(16),o=n(20),r=Math.max;e.exports=function(e,t){var n,a,s,l=r(arguments.length,2);for(e=Object(o(e)),s=function(i){try{e[i]=t[i]}catch(e){n||(n=e)}},a=1;a<l;++a)i(t=arguments[a]).forEach(s);if(void 0!==n)throw n;return e}},function(e,t,n){\"use strict\";e.exports=n(17)()?Object.keys:n(18)},function(e,t,n){\"use strict\";e.exports=function(){try{return Object.keys(\"primitive\"),!0}catch(e){return!1}}},function(e,t,n){\"use strict\";var i=n(2),o=Object.keys;e.exports=function(e){return o(i(e)?Object(e):e)}},function(e,t,n){\"use strict\";e.exports=function(){}},function(e,t,n){\"use strict\";var i=n(2);e.exports=function(e){if(!i(e))throw new TypeError(\"Cannot use null or undefined\");return e}},function(e,t,n){\"use strict\";var i=n(2),o=Array.prototype.forEach,r=Object.create,a=function(e,t){var n;for(n in e)t[n]=e[n]};e.exports=function(e){var t=r(null);return o.call(arguments,(function(e){i(e)&&a(Object(e),t)})),t}},function(e,t,n){\"use strict\";e.exports=n(23)()?String.prototype.contains:n(24)},function(e,t,n){\"use strict\";var i=\"razdwatrzy\";e.exports=function(){return\"function\"==typeof i.contains&&(!0===i.contains(\"dwa\")&&!1===i.contains(\"foo\"))}},function(e,t,n){\"use strict\";var i=String.prototype.indexOf;e.exports=function(e){return i.call(this,e,arguments[1])>-1}},function(e,t,n){\"use strict\";e.exports=function(e){if(\"function\"!=typeof e)throw new TypeError(e+\" is not a function\");return e}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var o=\"undefined\"!=typeof window&&window.location.href.indexOf(\"danmu-debug\")>-1,r=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.constructorName=t||\"\"}return i(e,[{key:\"info\",value:function(e){for(var t,n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];o&&(t=console).log.apply(t,[\"[Danmu Log][\"+this.constructorName+\"]\",e].concat(i))}}]),e}();t.default=r,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=s(n(1)),r=s(n(0)),a=s(n(28));function s(e){return e&&e.__esModule?e:{default:e}}var l=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.setLogger(\"control\"),n.danmu=e,n.main=new a.default(e),e.config.defaultOff||n.main.start(),n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"createSwitch\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.logger&&this.logger.info(\"createSwitch\"),this.switchBtn=r.default.createDom(\"dk-switch\",'<span class=\"txt\">弹</span>',{},\"danmu-switch \"+(e?\"danmu-switch-active\":\"\")),this.switchBtn}},{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),this.main.destroy(),this)delete this[e]}}]),t}(o.default);t.default=l,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=l(n(1)),r=l(n(29)),a=l(n(30)),s=l(n(0));function l(e){return e&&e.__esModule?e:{default:e}}var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));n.setLogger(\"main\"),n.danmu=e,n.container=e.container,n.channel=new r.default(e),n.data=[].concat(e.config.comments),n.playedData=[],n.queue=[],n.timer=null,n.retryTimer=null,n.retryStatus=\"normal\",n.interval=e.config.interval||2e3,n.status=\"idle\",s.default.on(e,\"bullet_remove\",n.updateQueue.bind(n),\"destroy\");var i=n;return s.default.on(n.danmu,\"changeDirection\",(function(e){i.danmu.direction=e}),\"destroy\"),n.nums=0,n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),clearTimeout(this.dataHandleTimer),this.channel.destroy(),this.data=[],this)delete this[e]}},{key:\"updateQueue\",value:function(e){this.logger&&this.logger.info(\"updateQueue\");var t=this;t.queue.some((function(n,i){return n.id===e.bullet.id&&(t.queue.splice(i,1),!0)})),t.data.some((function(t,n){return t.id===e.bullet.id&&(t.hasAttached=!1,!0)}))}},{key:\"init\",value:function(e,t){t.logger&&t.logger.info(\"init\"),t||(t=this),t.retryStatus=\"normal\",t.data.sort((function(e,t){return e.start-t.start}));t.retryTimer||function e(){\"closed\"===t.status&&\"stop\"===t.retryStatus||(\"playing\"===t.status&&(t.readData(),t.dataHandle()),\"stop\"===t.retryStatus&&\"paused\"!==t.status||(t.dataHandleTimer=setTimeout((function(){e()}),t.interval-1e3)))}()}},{key:\"start\",value:function(){this.logger&&this.logger.info(\"start\");this.status=\"playing\",this.queue=[],this.container.innerHTML=\"\",this.channel.resetWithCb(this.init,this)}},{key:\"stop\",value:function(){this.logger&&this.logger.info(\"stop\");this.status=\"closed\",this.retryTimer=null,this.retryStatus=\"stop\",this.channel.reset(),this.queue=[],this.container.innerHTML=\"\"}},{key:\"clear\",value:function(){this.logger&&this.logger.info(\"clear\"),this.channel.reset(),this.data=[],this.queue=[],this.container.innerHTML=\"\"}},{key:\"play\",value:function(){var e=this;this.logger&&this.logger.info(\"play\"),this.status=\"playing\";var t=this.channel.channels,n=this.danmu.container.getBoundingClientRect();t&&t.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(i){e.queue.forEach((function(e){e.startMove(n),e.resized=!0}));for(var o=0;o<t.length;o++)t[o].queue[i].forEach((function(e){e.resized=!1}))}))}},{key:\"pause\",value:function(){this.logger&&this.logger.info(\"pause\"),this.status=\"paused\";var e=this.channel.channels,t=this.danmu.container.getBoundingClientRect();e&&e.length>0&&this.queue.forEach((function(e){e.pauseMove(t)}))}},{key:\"dataHandle\",value:function(){var e=this;\"paused\"!==this.status&&\"closed\"!==this.status&&e.queue.length&&e.queue.forEach((function(t){\"waiting\"===t.status&&t.startMove(e.channel.containerPos)}))}},{key:\"readData\",value:function(){var e=this,t=this.danmu;if(t.isReady){var n=0;t.player&&t.player.currentTime&&(n=s.default.formatTime(t.player.currentTime));var i=void 0,o=e.interval,r=e.channel,l=void 0;t.player?(l=e.data.filter((function(t){return!t.start&&e.danmu.hideArr.indexOf(t.mode)<0&&(!t.color||e.danmu.hideArr.indexOf(\"color\")<0)&&(t.start=n),e.danmu.hideArr.indexOf(t.mode)<0&&(!t.color||e.danmu.hideArr.indexOf(\"color\")<0)&&t.start-o<=n&&n<=t.start+o})),t.live&&(e.data=[])):0===(l=e.data.splice(0,1)).length&&(l=e.playedData.splice(0,1)),l.length>0&&l.forEach((function(n){if(e.forceDuration&&e.forceDuration!=n.duration&&(n.duration=e.forceDuration),i=new a.default(t,n),n.hasAttached){for(var o in i.detach(),i)delete i[o];i=null,n.hasAttached=!1,n.noDiscard&&(n.prior?e.data.unshift(n):e.data.push(n))}else if(i.attach(),n.hasAttached=!0,r.addBullet(i).result)e.queue.push(i),e.nums++,i.topInit();else{for(var s in i.detach(),i)delete i[s];i=null,n.hasAttached=!1,n.noDiscard&&(n.prior?e.data.unshift(n):e.data.push(n))}}))}}}]),t}(o.default);t.default=u,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=a(n(1)),r=a(n(0));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));n.setLogger(\"channel\"),n.danmu=e,n.reset(!0);var i=n;return r.default.on(n.danmu,\"bullet_remove\",(function(e){i.removeBullet(e.bullet)}),\"destroy\"),n.direction=e.direction,r.default.on(n.danmu,\"changeDirection\",(function(e){i.direction=e}),\"destroy\"),n.containerPos=n.danmu.container.getBoundingClientRect(),n.containerWidth=n.containerPos.width,n.containerHeight=n.containerPos.height,n.containerLeft=n.containerPos.left,n.containerRight=n.containerPos.right,r.default.on(n.danmu,\"channel_resize\",(function(){i.containerPos=i.danmu.container.getBoundingClientRect(),i.resizing||(i.containerWidth=i.containerPos.width,i.containerHeight=i.containerPos.height,i.containerLeft=i.containerPos.left,i.containerRight=i.containerPos.right,i.resize(!0))}),\"destroy\"),n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),clearTimeout(this.resizeTimer),this.channels=[],this)delete this[e]}},{key:\"resize\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logger&&this.logger.info(\"resize\");var t=this.danmu.container,n=this;n.resizing||(n.resizing=!0,this.resizeTimer=setTimeout((function(){n.danmu.bulletBtn.main.data&&n.danmu.bulletBtn.main.data.forEach((function(e){e.bookChannelId&&(delete e.bookChannelId,n.logger&&n.logger.info(\"resize导致\"+e.id+\"号优先弹幕预定取消\"))})),n.logger&&n.logger.info(\"resize导致所有轨道恢复正常使用\");var i=t.getBoundingClientRect();n.width=i.width,n.height=i.height,n.danmu.config.area&&n.danmu.config.area.start>=0&&n.danmu.config.area.end>=n.danmu.config.area.start&&(\"b2t\"===n.direction?n.width=n.width*(n.danmu.config.area.end-n.danmu.config.area.start):n.height=n.height*(n.danmu.config.area.end-n.danmu.config.area.start)),n.container=t;var o=n.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),r=void 0;r=\"b2t\"===n.direction?Math.floor(n.width/o):Math.floor(n.height/o);for(var a=[],s=0;s<r;s++)a[s]={id:s,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};if(n.channels&&n.channels.length<=a.length){for(var l=function(t){a[t]={id:t,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},[\"scroll\",\"top\"].forEach((function(i){n.channels[t].queue[i].forEach((function(o){o.el&&(a[t].queue[i].push(o),o.resized||(o.pauseMove(n.containerPos,e),\"paused\"!==o.danmu.bulletBtn.main.status&&o.startMove(n.containerPos),o.resized=!0))}))})),n.channels[t].queue.bottom.forEach((function(i){if(i.el){if(a[t+a.length-n.channels.length].queue.bottom.push(i),i.channel_id[0]+i.channel_id[1]-1===t){var r=[].concat(i.channel_id);i.channel_id=[r[0]-n.channels.length+a.length,r[1]],i.top=i.channel_id[0]*o,n.danmu.config.area&&n.danmu.config.area.start&&(i.top+=n.containerHeight*n.danmu.config.area.start),i.topInit()}i.resized||(i.pauseMove(n.containerPos,e),\"paused\"!==i.danmu.bulletBtn.main.status&&i.startMove(n.containerPos),i.resized=!0)}}))},u=0;u<n.channels.length;u++)l(u);for(var c=function(e){[\"scroll\",\"top\",\"bottom\"].forEach((function(t){a[e].queue[t].forEach((function(e){e.resized=!1}))}))},f=0;f<a.length;f++)c(f);n.channels=a,\"b2t\"===n.direction?n.channelWidth=o:n.channelHeight=o}else if(n.channels&&n.channels.length>a.length){for(var h=function(t){a[t]={id:t,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},[\"scroll\",\"top\",\"bottom\"].forEach((function(i){if(\"top\"===i&&t>Math.floor(a.length/2));else if(\"bottom\"===i&&t<=Math.floor(a.length/2));else{var r=\"bottom\"===i?t-a.length+n.channels.length:t;n.channels[r].queue[i].forEach((function(s,l){if(s.el){if(a[t].queue[i].push(s),\"bottom\"===i&&s.channel_id[0]+s.channel_id[1]-1===r){var u=[].concat(s.channel_id);s.channel_id=[u[0]-n.channels.length+a.length,u[1]],s.top=s.channel_id[0]*o,n.danmu.config.area&&n.danmu.config.area.start&&(s.top+=n.containerHeight*n.danmu.config.area.start),s.topInit()}s.pauseMove(n.containerPos,e),\"paused\"!==s.danmu.bulletBtn.main.status&&s.startMove(n.containerPos),s.resized||(s.resized=!0)}n.channels[r].queue[i].splice(l,1)}))}}))},d=0;d<a.length;d++)h(d);for(var g=function(e){[\"scroll\",\"top\",\"bottom\"].forEach((function(t){a[e].queue[t].forEach((function(e){e.resized=!1}))}))},p=0;p<a.length;p++)g(p);n.channels=a,\"b2t\"===n.direction?n.channelWidth=o:n.channelHeight=o}n.resizing=!1}),10))}},{key:\"addBullet\",value:function(e){var t=this,n=this.danmu,i=this.channels,o=void 0,r=void 0,a=void 0;if(\"b2t\"===t.direction?(r=this.channelWidth,a=Math.ceil(e.width/r)):(o=this.channelHeight,a=Math.ceil(e.height/o)),a>i.length)return{result:!1,message:\"exceed channels.length, occupy=\"+a+\",channelsSize=\"+i.length};for(var s=!0,l=void 0,u=-1,c=0,f=i.length;c<f;c++)if(i[c].queue[e.mode].some((function(t){return t.id===e.id})))return{result:!1,message:\"exsited, channelOrder=\"+c+\",danmu_id=\"+e.id};if(\"scroll\"===e.mode)for(var h=0,d=i.length-a;h<=d;h++){s=!0;for(var g=h;g<h+a;g++){if((l=i[g]).operating.scroll){s=!1;break}if(l.bookId.scroll&&l.bookId.scroll!==e.id){s=!1;break}l.operating.scroll=!0;var p=l.queue.scroll[0];if(p){var m=p.el.getBoundingClientRect();if(\"b2t\"===t.direction){if(m.bottom>t.containerPos.bottom){s=!1,l.operating.scroll=!1;break}}else if(m.right>t.containerPos.right){s=!1,l.operating.scroll=!1;break}var v,b=void 0,y=void 0,w=void 0,_=void 0;if(\"b2t\"===t.direction?(y=(m.top-t.containerPos.top+m.height)/(b=(t.containerPos.height+m.height)/p.duration),w=t.containerPos.height,_=(t.containerPos.height+e.height)/e.duration):(y=(m.left-t.containerPos.left+m.width)/(b=(t.containerPos.width+m.width)/p.duration),w=t.containerPos.width,_=(t.containerPos.width+e.width)/e.duration),v=w/_,n.config.bOffset||(n.config.bOffset=0),b<_&&y+n.config.bOffset>v){s=!1,l.operating.scroll=!1;break}}l.operating.scroll=!1}if(s){u=h;break}}else if(\"top\"===e.mode)for(var O=0,k=i.length-a;O<=k;O++){s=!0;for(var x=O;x<O+a;x++){if(x>Math.floor(i.length/2)){s=!1;break}if((l=i[x]).operating[e.mode]){s=!1;break}if((l.bookId[e.mode]||e.prior)&&l.bookId[e.mode]!==e.id){s=!1;break}if(l.operating[e.mode]=!0,l.queue[e.mode].length>0){s=!1,l.operating[e.mode]=!1;break}l.operating[e.mode]=!1}if(s){u=O;break}}else if(\"bottom\"===e.mode)for(var M=i.length-a;M>=0;M--){s=!0;for(var C=M;C<M+a;C++){if(C<=Math.floor(i.length/2)){s=!1;break}if((l=i[C]).operating[e.mode]){s=!1;break}if((l.bookId[e.mode]||e.prior)&&l.bookId[e.mode]!==e.id){s=!1;break}if(l.operating[e.mode]=!0,l.queue[e.mode].length>0){s=!1,l.operating[e.mode]=!1;break}l.operating[e.mode]=!1}if(s){u=M;break}}if(-1!==u){for(var E=u,j=u+a;E<j;E++)(l=i[E]).operating[e.mode]=!0,l.queue[e.mode].unshift(e),e.prior&&(delete l.bookId[e.mode],t.logger&&t.logger.info(E+\"号轨道恢复正常使用\")),l.operating[e.mode]=!1;if(e.prior)if(t.logger&&t.logger.info(e.id+\"号优先弹幕运行完毕\"),delete e.bookChannelId,n.player)n.bulletBtn.main.data.some((function(t){return t.id===e.id&&(delete t.bookChannelId,!0)}));return e.channel_id=[u,a],\"b2t\"===t.direction?(e.top=u*r,t.danmu.config.area&&t.danmu.config.area.start&&(e.top+=t.containerWidth*t.danmu.config.area.start)):(e.top=u*o,t.danmu.config.area&&t.danmu.config.area.start&&(e.top+=t.containerHeight*t.danmu.config.area.start)),{result:e,message:\"success\"}}if(e.options.realTime){var B=0,T=-1,P=null;if(t.danmu.bulletBtn.main.queue.forEach((function(e,n){!e.prior&&!e.options.realTime&&e.el&&e.el.getBoundingClientRect().left>t.containerPos.right&&e.start>=B&&(B=e.start,T=n,P=e)})),P){P.remove(),t.removeBullet(P),t.danmu.bulletBtn.main.queue.splice(T,1),e.channel_id=P.channel_id;for(var z=P.channel_id[0],S=P.channel_id[0]+P.channel_id[1];z<S;z++)(l=i[z]).operating[e.mode]=!0,l.queue[e.mode].unshift(e),e.prior&&delete l.bookId[e.mode],l.operating[e.mode]=!1;return e.top=P.top,t.danmu.config.area&&t.danmu.config.area.start&&(e.top+=t.containerHeight*t.danmu.config.area.start),{result:e,message:\"success\"}}}if(e.prior)if(e.bookChannelId||t.danmu.live){if(n.player)n.bulletBtn.main.data.some((function(n){return n.id===e.id&&(t.logger&&t.logger.info(e.id+\"号优先弹幕将于2秒后再次请求注册\"),n.start+=2e3,!0)}))}else{u=-1;for(var L=0,D=i.length-a;L<=D;L++){s=!0;for(var q=L;q<L+a;q++)if(i[q].bookId[e.mode]){s=!1;break}if(s){u=L;break}}if(-1!==u){for(var R=u;R<u+a;R++)i[R].bookId[e.mode]=e.id,t.logger&&t.logger.info(R+\"号轨道被\"+e.id+\"号优先弹幕预定\");if(n.player)n.bulletBtn.main.data.some((function(n){return n.id===e.id&&(t.logger&&t.logger.info(e.id+\"号优先弹幕将于2秒后再次请求注册\"),n.start+=2e3,n.bookChannelId=[u,a],t.logger&&t.logger.info(e.id+\"号优先弹幕预定了\"+u+\"~\"+(u+a-1)+\"号轨道\"),!0)}))}}return{result:!1,message:\"no surplus will right\"}}},{key:\"removeBullet\",value:function(e){this.logger&&this.logger.info(\"removeBullet \"+(e.options.txt||\"[DOM Element]\"));for(var t=this.channels,n=e.channel_id,i=void 0,o=n[0],r=n[0]+n[1];o<r;o++)if(i=t[o]){i.operating[e.mode]=!0;var a=-1;i.queue[e.mode].some((function(t,n){return t.id===e.id&&(a=n,!0)})),a>-1&&i.queue[e.mode].splice(a,1),i.operating[e.mode]=!1}e.options.loop&&this.danmu.bulletBtn.main.playedData.push(e.options)}},{key:\"resetArea\",value:function(){this.logger&&this.logger.info(\"resetArea\");var e=this.danmu.container,t=this,n=e.getBoundingClientRect();t.width=n.width,t.height=n.height,t.danmu.config.area&&t.danmu.config.area.start>=0&&t.danmu.config.area.end>=t.danmu.config.area.start&&(\"b2t\"===t.direction?t.width=t.width*(t.danmu.config.area.end-t.danmu.config.area.start):t.height=t.height*(t.danmu.config.area.end-t.danmu.config.area.start)),t.container=e;var i=t.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),o=void 0;o=\"b2t\"===t.direction?Math.floor(t.width/i):Math.floor(t.height/i);for(var r=[],a=0;a<o;a++)r[a]={id:a,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};if(t.channels&&t.channels.length<=r.length){for(var s=function(e){r[e]={id:e,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},[\"scroll\",\"top\"].forEach((function(n){t.channels[e].queue[n].forEach((function(i){i.el&&(r[e].queue[n].push(i),i.resized||(i.pauseMove(t.containerPos,!1),i.startMove(t.containerPos),i.resized=!0))}))})),t.channels[e].queue.bottom.forEach((function(n){if(n.el){if(r[e+r.length-t.channels.length].queue.bottom.push(n),n.channel_id[0]+n.channel_id[1]-1===e){var o=[].concat(n.channel_id);n.channel_id=[o[0]-t.channels.length+r.length,o[1]],n.top=n.channel_id[0]*i,t.danmu.config.area&&t.danmu.config.area.start&&(n.top+=t.containerHeight*t.danmu.config.area.start),n.topInit()}n.resized||(n.pauseMove(t.containerPos,!1),n.startMove(t.containerPos),n.resized=!0)}}))},l=0;l<t.channels.length;l++)s(l);for(var u=function(e){[\"scroll\",\"top\",\"bottom\"].forEach((function(t){r[e].queue[t].forEach((function(e){e.resized=!1}))}))},c=0;c<r.length;c++)u(c);t.channels=r,\"b2t\"===t.direction?t.channelWidth=i:t.channelHeight=i}else if(t.channels&&t.channels.length>r.length){for(var f=function(e){r[e]={id:e,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},[\"scroll\",\"top\",\"bottom\"].forEach((function(n){if(\"top\"===n&&e>Math.floor(r.length/2));else if(\"bottom\"===n&&e<=Math.floor(r.length/2));else{var o=\"bottom\"===n?e-r.length+t.channels.length:e;t.channels[o].queue[n].forEach((function(a,s){if(a.el){if(r[e].queue[n].push(a),\"bottom\"===n&&a.channel_id[0]+a.channel_id[1]-1===o){var l=[].concat(a.channel_id);a.channel_id=[l[0]-t.channels.length+r.length,l[1]],a.top=a.channel_id[0]*i,t.danmu.config.area&&t.danmu.config.area.start&&(a.top+=t.containerHeight*t.danmu.config.area.start),a.topInit()}a.resized||(a.pauseMove(t.containerPos,!1),a.startMove(t.containerPos),a.resized=!0)}t.channels[o].queue[n].splice(s,1)}))}}))},h=0;h<r.length;h++)f(h);for(var d=function(e){[\"scroll\",\"top\",\"bottom\"].forEach((function(t){r[e].queue[t].forEach((function(e){e.resized=!1}))}))},g=0;g<r.length;g++)d(g);t.channels=r,\"b2t\"===t.direction?t.channelWidth=i:t.channelHeight=i}}},{key:\"reset\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logger&&this.logger.info(\"reset\");var t=this.danmu.container,n=this;function i(){var e=t.getBoundingClientRect();n.width=e.width,n.height=e.height,n.danmu.config.area&&n.danmu.config.area.start>=0&&n.danmu.config.area.end>=n.danmu.config.area.start&&(\"b2t\"===n.direction?n.width=n.width*(n.danmu.config.area.end-n.danmu.config.area.start):n.height=n.height*(n.danmu.config.area.end-n.danmu.config.area.start)),n.container=t;var i=n.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),o=void 0;o=\"b2t\"===n.direction?Math.floor(n.width/i):Math.floor(n.height/i);for(var r=[],a=0;a<o;a++)r[a]={id:a,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};n.channels=r,\"b2t\"===n.direction?n.channelWidth=i:n.channelHeight=i}n.danmu.bulletBtn&&n.danmu.bulletBtn.main&&n.danmu.bulletBtn.main.queue.forEach((function(e){e.pauseMove(n.containerPos),e.remove()})),n.channels&&n.channels.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(e){for(var t=0;t<n.channels.length;t++)n.channels[t].queue[e].forEach((function(e){e.pauseMove(n.containerPos),e.remove()}))})),n.danmu.bulletBtn&&n.danmu.bulletBtn.main&&n.danmu.bulletBtn.main.data&&n.danmu.bulletBtn.main.data.forEach((function(e){e.hasAttached=!1})),e?this.resetTimer=setTimeout(i,200):i()}},{key:\"resetWithCb\",value:function(e,t){this.logger&&this.logger.info(\"resetWithCb\");var n=this.danmu.container,i=this;i.channels&&i.channels.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(e){for(var t=0;t<i.channels.length;t++)i.channels[t].queue[e].forEach((function(e){e.pauseMove(i.containerPos),e.remove()}))}));var o=n.getBoundingClientRect();i.width=o.width,i.height=o.height,i.danmu.config.area&&i.danmu.config.area.start>=0&&i.danmu.config.area.end>=i.danmu.config.area.start&&(\"b2t\"===i.direction?i.width=i.width*(i.danmu.config.area.end-i.danmu.config.area.start):i.height=i.height*(i.danmu.config.area.end-i.danmu.config.area.start)),i.container=n;var r=i.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),a=void 0;a=\"b2t\"===i.direction?Math.floor(i.width/r):Math.floor(i.height/r);for(var s=[],l=0;l<a;l++)s[l]={id:l,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};i.channels=s,i.channelHeight=r,e&&e(!0,t)}}]),t}(o.default);t.default=s,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=a(n(1)),r=a(n(0));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));i.setLogger(\"bullet\"),i.danmu=e,i.options=n,i.duration=n.duration,i.moveV=n.moveV,i.id=n.id,i.container=e.container,i.start=n.start,i.prior=n.prior,i.color=n.color,i.bookChannelId=n.bookChannelId,i.direction=e.direction;var o=i;i.onChangeDirection=function(e){o.direction=e},i.danmu.on(\"changeDirection\",i.onChangeDirection);var a=void 0;if(i.domObj=e.domObj,n.el&&1===n.el.nodeType){a=i.domObj.use();var s=r.default.copyDom(n.el);n.eventListeners&&n.eventListeners.length>0&&n.eventListeners.forEach((function(e){s.addEventListener(e.event,e.listener,e.useCapture||!1)})),a.appendChild(s)}else(a=i.domObj.use()).textContent=n.txt;if(n.style){var l=n.style;Object.keys(l).forEach((function(e){r.default.style(a,e,l[e])}))}\"top\"===n.mode||\"bottom\"===n.mode?i.mode=n.mode:i.mode=\"scroll\",i.el=a,n.like&&n.like.el&&i.setLikeDom(n.like.el,n.like.style),i.status=\"waiting\";var u=i.container.getBoundingClientRect(),c=Math.floor(Math.random()*(u.width/10>100?200:u.width/10));n.realTime&&(c=0);var f=u.width+c+\"px\";return r.default.style(i.el,\"left\",f),i.containerPos=u,i}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"attach\",value:function(){if(this.container.appendChild(this.el),this.elPos=this.el.getBoundingClientRect(),\"b2t\"===this.direction?(this.width=this.elPos.height,this.height=this.elPos.width):(this.width=this.elPos.width,this.height=this.elPos.height),this.moveV){var e=this.containerPos;this.duration=(e.width+this.width)/this.moveV*1e3}this.danmu.config&&this.danmu.config.mouseControl&&(this.mouseoverFunWrapper=this.mouseoverFun.bind(this),this.el.addEventListener(\"mouseover\",this.mouseoverFunWrapper,!1)),this.danmu.config&&this.danmu.config.mouseEnterControl&&(this.mouseEnterFunWrapper=this.mouseoverFun.bind(this),this.el.addEventListener(\"mouseenter\",this.mouseEnterFunWrapper,!1))}},{key:\"mouseoverFun\",value:function(e){this.danmu&&this.danmu.mouseControl&&this.danmu.config.mouseControlPause||\"waiting\"===this.status||\"end\"===this.status||this.danmu&&this.danmu.emit(\"bullet_hover\",{bullet:this,event:e})}},{key:\"detach\",value:function(){this.el&&(this.danmu.config&&this.danmu.config.mouseControl&&this.el.removeEventListener(\"mouseover\",this.mouseoverFunWrapper,!1),this.danmu.config&&this.danmu.config.mouseEnterControl&&this.el.removeEventListener(\"mouseenter\",this.mouseEnterFunWrapper,!1),this.el.parentNode&&this.el.parentNode.removeChild(this.el),this.domObj.unuse(this.el),this.el=null),this.danmu.off(\"changeDirection\",this.onChangeDirection)}},{key:\"topInit\",value:function(){if(this.logger&&this.logger.info(\"topInit #\"+(this.options.txt||\"[DOM Element]\")+\"#\"),\"b2t\"===this.direction){var e=this.containerPos;r.default.style(this.el,\"transformOrigin\",\"left top\"),r.default.style(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+e.height+\"px) translateZ(0px) rotate(90deg)\"),r.default.style(this.el,\"transition\",\"transform 0s linear 0s\")}else r.default.style(this.el,\"top\",this.top+\"px\")}},{key:\"pauseMove\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.logger&&this.logger.info(\"pauseMove #\"+(this.options.txt||\"[DOM Element]\")+\"#\");var n=this;if(\"paused\"!==this.status&&(\"forcedPause\"!==n.status&&(this.status=\"paused\"),clearTimeout(n.removeTimer),this.el))if(r.default.style(this.el,\"willChange\",\"auto\"),\"scroll\"===this.mode){if(t){var i=((new Date).getTime()-n.moveTime)/1e3,o=i*this.moveV,a=0;a=n.moveMoreS-o>=0?\"b2t\"===this.direction?(n.moveMoreS-o)/n.moveContainerHeight*e.height:(n.moveMoreS-o)/n.moveContainerWidth*e.width:n.moveMoreS-o,\"b2t\"===this.direction?r.default.style(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+a+\"px) translateZ(0px) rotate(90deg)\"):r.default.style(this.el,\"left\",a+\"px\")}else\"b2t\"===this.direction?r.default.style(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+(this.el.getBoundingClientRect().top-e.top)+\"px) translateZ(0px) rotate(90deg)\"):r.default.style(this.el,\"left\",this.el.getBoundingClientRect().left-e.left+\"px\");\"b2t\"===this.direction||r.default.style(this.el,\"transform\",\"translateX(0px) translateY(0px) translateZ(0px)\"),r.default.style(this.el,\"transition\",\"transform 0s linear 0s\")}else this.pastDuration&&this.startTime?this.pastDuration=this.pastDuration+(new Date).getTime()-this.startTime:this.pastDuration=1}},{key:\"startMove\",value:function(e,t){this.logger&&this.logger.info(\"startMove #\"+(this.options.txt||\"[DOM Element]\")+\"#\");var n=this;if(n.hasMove||(n.danmu.emit(\"bullet_start\",n),n.hasMove=!0),(\"forcedPause\"!==n.status||t)&&this.el&&\"start\"!==this.status)if(this.status=\"start\",r.default.style(this.el,\"willChange\",\"transform\"),\"scroll\"===this.mode)if(\"b2t\"===this.direction){this.moveV=(e.height+this.height)/this.duration*1e3;var i=(n.el.getBoundingClientRect().bottom-e.top)/this.moveV;r.default.style(this.el,\"transition\",\"transform \"+i+\"s linear 0s\"),this.startMoveTimer=setTimeout((function(){n.el&&(r.default.style(n.el,\"transform\",\"translateX(-\"+n.top+\"px) translateY(-\"+n.height+\"px) translateZ(0px) rotate(90deg)\"),n.moveTime=(new Date).getTime(),n.moveMoreS=n.el.getBoundingClientRect().top-e.top,n.moveContainerHeight=e.height,n.removeTimer=setTimeout(l,1e3*i))}),20)}else{var o=this.el.getBoundingClientRect();this.moveV=(e.width+this.width)/this.duration*1e3;var a=(o.right-e.left)/this.moveV;r.default.style(this.el,\"transition\",\"transform \"+a+\"s linear 0s\"),this.startMoveTimer=setTimeout((function(){if(n.el){var t=n.el.getBoundingClientRect(),i=(t.right-e.left)/a;t.right>e.left&&i>n.moveV-1&&i<n.moveV+1?(r.default.style(n.el,\"transform\",\"translateX(-\"+(t.right-e.left)+\"px) translateY(0px) translateZ(0px)\"),n.moveTime=(new Date).getTime(),n.moveMoreS=t.left-e.left,n.moveContainerWidth=e.width,n.removeTimer=setTimeout(l,1e3*a)):(n.status=\"end\",n.remove())}}),0)}else{r.default.style(this.el,\"left\",\"50%\"),r.default.style(this.el,\"margin\",\"0 0 0 -\"+this.width/2+\"px\"),this.pastDuration||(this.pastDuration=1);var s=this.duration>=this.pastDuration?this.duration-this.pastDuration:0;this.removeTimer=setTimeout(l,s),this.startTime=(new Date).getTime()}function l(){if(n.el)if(\"scroll\"===n.mode){var e=n.containerPos,t=n.el.getBoundingClientRect();\"b2t\"===n.direction?t&&t.bottom<=e.top+100?(n.status=\"end\",n.remove()):(n.pauseMove(e),\"paused\"!==n.danmu.bulletBtn.main.status&&n.startMove(e)):t&&t.right<=e.left+100?(n.status=\"end\",n.remove()):(n.pauseMove(e),\"paused\"!==n.danmu.bulletBtn.main.status&&n.startMove(e))}else n.status=\"end\",n.remove()}}},{key:\"remove\",value:function(){this.logger&&this.logger.info(\"remove #\"+(this.options.txt||\"[DOM Element]\")+\"#\");this.removeTimer&&clearTimeout(this.removeTimer),this.startMoveTimer&&clearTimeout(this.startMoveTimer),this.el&&this.el.parentNode&&(r.default.style(this.el,\"willChange\",\"auto\"),this.detach(),this.danmu.emit(\"bullet_remove\",{bullet:this}))}},{key:\"setFontSize\",value:function(e){this.el&&(this.el.style.fontSize=e)}},{key:\"setLikeDom\",value:function(e,t){if(e){Object.keys(t).forEach((function(n){e.style[n]=t[n]}));if(e.className=\"danmu-like\",this.el){var n=this.el.querySelector(\".danmu-like\");n&&this.el.removeChild(n),this.el.innerHTML=\"\"+this.el.innerHTML+e.outerHTML}}return e}}]),t}(o.default);t.default=s,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=n(0),a=(i=r)&&i.__esModule?i:{default:i};var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),t={initDOM:function(){return document.createElement(\"div\")},initSize:10},this.init(t)}return o(e,[{key:\"init\",value:function(e){this.idleList=[],this.usingList=[],this._id=0,this.options=e,this._expand(e.initSize)}},{key:\"use\",value:function(){this.idleList.length||this._expand(1);var e=this.idleList.shift();return this.usingList.push(e),e}},{key:\"unuse\",value:function(e){var t=this.usingList.indexOf(e);t<0||(this.usingList.splice(t,1),e.innerHTML=\"\",e.textcontent=\"\",this.clearElementStyle(e),this.idleList.push(e))}},{key:\"_expand\",value:function(e){for(var t=0;t<e;t++)this.idleList.push(this.options.initDOM(this._id++))}},{key:\"destroy\",value:function(){for(var e=0;e<this.idleList.length;e++)this.idleList[e].innerHTML=\"\",this.idleList[e].textcontent=\"\",this.clearElementStyle(this.idleList[e]);for(var t=0;t<this.usingList.length;t++)this.usingList[t].innerHTML=\"\",this.usingList[t].textcontent=\"\",this.clearElementStyle(this.usingList[t]);for(var n in this)delete this[n]}},{key:\"clearElementStyle\",value:function(e){var t=\"undefined\"!=typeof window?window.navigator.userAgent:null;t&&(t.indexOf(\"MSIE \")>-1||t.indexOf(\"Trident/\")>-1?a.default.style(e,\"transform\",\"none\"):e.setAttribute(\"style\",\"\"))}}]),e}();t.default=s,e.exports=t.default},function(e){e.exports=JSON.parse('{\"version\":\"0.5.10\"}')},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var o=new(function(){function e(){var t=this;if(function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.__handlers=[],window.ResizeObserver)try{this.observer=new window.ResizeObserver((function(e){var n=(new Date).getTime();n-t.timeStampe<200||(t.timeStampe=n,t.__trigger(e))})),this.timeStampe=(new Date).getTime()}catch(e){}}return i(e,[{key:\"addObserver\",value:function(e,t){if(this.observer){this.observer&&this.observer.observe(e);for(var n=this.__handlers,i=-1,o=0;o<n.length;o++)n[o]&&e===n[o].target&&(i=o);i>-1?this.__handlers[i].handler.push(t):this.__handlers.push({target:e,handler:[t]})}}},{key:\"unObserver\",value:function(e){var t=-1;this.__handlers.map((function(n,i){e===n.target&&(t=i)})),this.observer&&this.observer.unobserve(e),t>-1&&this.__handlers.splice(t,1)}},{key:\"destroyObserver\",value:function(){this.observer&&this.observer.disconnect(),this.observer=null,this.__handlers=null}},{key:\"__runHandler\",value:function(e){for(var t=this.__handlers,n=0;n<t.length;n++)if(t[n]&&e===t[n].target){t[n].handler&&t[n].handler.map((function(e){try{e()}catch(e){console.error(e)}}));break}}},{key:\"__trigger\",value:function(e){var t=this;e.map((function(e){t.__runHandler(e.target)}))}}]),e}());t.addObserver=function(e,t){o.addObserver(e,t)},t.unObserver=function(e,t){o.unObserver(e,t)},t.destroyObserver=function(e,t){o.destroyObserver(e,t)}},function(e,t,n){var i=n(35);\"string\"==typeof i&&(i=[[e.i,i,\"\"]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(37)(i,o);i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(36)(!1)).push([e.i,\".danmu{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.danmu>*{position:absolute;white-space:nowrap}.danmu-switch{width:32px;height:20px;border-radius:100px;background-color:#ccc;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;cursor:pointer;position:relative;text-align:center;margin:10px auto}.danmu-switch.danmu-switch-active{padding-left:12px;background-color:#f85959}.danmu-switch span.txt{width:20px;height:20px;line-height:20px;text-align:center;display:block;border-radius:100px;background-color:#ffffff;-webkit-box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);font-family:PingFangSC;font-size:10px;font-weight:500;color:#f44336}\\n\",\"\"])},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||\"\",i=e[3];if(!i)return n;if(t&&\"function\"==typeof btoa){var o=(a=i,\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+\" */\"),r=i.sources.map((function(e){return\"/*# sourceURL=\"+i.sourceRoot+e+\" */\"}));return[n].concat(r).concat([o]).join(\"\\n\")}var a;return[n].join(\"\\n\")}(t,e);return t[2]?\"@media \"+t[2]+\"{\"+n+\"}\":n})).join(\"\")},t.i=function(e,n){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var i={},o=0;o<this.length;o++){var r=this[o][0];\"number\"==typeof r&&(i[r]=!0)}for(o=0;o<e.length;o++){var a=e[o];\"number\"==typeof a[0]&&i[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]=\"(\"+a[2]+\") and (\"+n+\")\"),t.push(a))}},t}},function(e,t,n){var i,o,r={},a=(i=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=i.apply(this,arguments)),o}),s=function(e){return document.querySelector(e)},l=function(e){var t={};return function(e){if(\"function\"==typeof e)return e();if(void 0===t[e]){var n=s.call(this,e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}}(),u=null,c=0,f=[],h=n(38);function d(e,t){for(var n=0;n<e.length;n++){var i=e[n],o=r[i.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](i.parts[a]);for(;a<i.parts.length;a++)o.parts.push(y(i.parts[a],t))}else{var s=[];for(a=0;a<i.parts.length;a++)s.push(y(i.parts[a],t));r[i.id]={id:i.id,refs:1,parts:s}}}}function g(e,t){for(var n=[],i={},o=0;o<e.length;o++){var r=e[o],a=t.base?r[0]+t.base:r[0],s={css:r[1],media:r[2],sourceMap:r[3]};i[a]?i[a].parts.push(s):n.push(i[a]={id:a,parts:[s]})}return n}function p(e,t){var n=l(e.insertInto);if(!n)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");var i=f[f.length-1];if(\"top\"===e.insertAt)i?i.nextSibling?n.insertBefore(t,i.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),f.push(t);else if(\"bottom\"===e.insertAt)n.appendChild(t);else{if(\"object\"!=typeof e.insertAt||!e.insertAt.before)throw new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");var o=l(e.insertInto+\" \"+e.insertAt.before);n.insertBefore(t,o)}}function m(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=f.indexOf(e);t>=0&&f.splice(t,1)}function v(e){var t=document.createElement(\"style\");return void 0===e.attrs.type&&(e.attrs.type=\"text/css\"),b(t,e.attrs),p(e,t),t}function b(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function y(e,t){var n,i,o,r;if(t.transform&&e.css){if(!(r=t.transform(e.css)))return function(){};e.css=r}if(t.singleton){var a=c++;n=u||(u=v(t)),i=O.bind(null,n,a,!1),o=O.bind(null,n,a,!0)}else e.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(e){var t=document.createElement(\"link\");return void 0===e.attrs.type&&(e.attrs.type=\"text/css\"),e.attrs.rel=\"stylesheet\",b(t,e.attrs),p(e,t),t}(t),i=x.bind(null,n,t),o=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),i=k.bind(null,n),o=function(){m(n)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else o()}}e.exports=function(e,t){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(t=t||{}).attrs=\"object\"==typeof t.attrs?t.attrs:{},t.singleton||\"boolean\"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto=\"head\"),t.insertAt||(t.insertAt=\"bottom\");var n=g(e,t);return d(n,t),function(e){for(var i=[],o=0;o<n.length;o++){var a=n[o];(s=r[a.id]).refs--,i.push(s)}e&&d(g(e,t),t);for(o=0;o<i.length;o++){var s;if(0===(s=i[o]).refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete r[s.id]}}}};var w,_=(w=[],function(e,t){return w[e]=t,w.filter(Boolean).join(\"\\n\")});function O(e,t,n,i){var o=n?\"\":i.css;if(e.styleSheet)e.styleSheet.cssText=_(t,o);else{var r=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(r,a[t]):e.appendChild(r)}}function k(e,t){var n=t.css,i=t.media;if(i&&e.setAttribute(\"media\",i),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function x(e,t,n){var i=n.css,o=n.sourceMap,r=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||r)&&(i=h(i)),o&&(i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([i],{type:\"text/css\"}),s=e.href;e.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}},function(e,t){e.exports=function(e){var t=\"undefined\"!=typeof window&&window.location;if(!t)throw new Error(\"fixUrls requires window.location\");if(!e||\"string\"!=typeof e)return e;var n=t.protocol+\"//\"+t.host,i=n+t.pathname.replace(/\\/[^\\/]*$/,\"/\");return e.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi,(function(e,t){var o,r=t.trim().replace(/^\"(.*)\"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(r)?e:(o=0===r.indexOf(\"//\")?r:0===r.indexOf(\"/\")?n+r:i+r.replace(/^\\.\\//,\"\"),\"url(\"+JSON.stringify(o)+\")\")}))}}])}));\n//# sourceMappingURL=index.js.map","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ( 'ontouchstart' in window ) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./enter.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./enter.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./enter.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000;z-index:120}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner{display:block;position:absolute;left:50%;top:50%;height:100px;width:100px;position:relative;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div{width:12%;height:26%;background-color:hsla(0,0%,100%,.7);position:absolute;left:44%;top:37%;opacity:0;border-radius:30px;-webkit-animation:fade 1s linear infinite;animation:fade 1s linear infinite}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar1{-webkit-transform:rotate(0deg) translateY(-142%);-ms-transform:rotate(0deg) translateY(-142%);transform:rotate(0deg) translateY(-142%);-webkit-animation-delay:0s;animation-delay:0s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar2{-webkit-transform:rotate(30deg) translateY(-142%);-ms-transform:rotate(30deg) translateY(-142%);transform:rotate(30deg) translateY(-142%);-webkit-animation-delay:-.9163s;animation-delay:-.9163s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar3{-webkit-transform:rotate(60deg) translateY(-142%);-ms-transform:rotate(60deg) translateY(-142%);transform:rotate(60deg) translateY(-142%);-webkit-animation-delay:-.833s;animation-delay:-.833s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar4{-webkit-transform:rotate(90deg) translateY(-142%);-ms-transform:rotate(90deg) translateY(-142%);transform:rotate(90deg) translateY(-142%);-webkit-animation-delay:-.7497s;animation-delay:-.7497s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar5{-webkit-transform:rotate(120deg) translateY(-142%);-ms-transform:rotate(120deg) translateY(-142%);transform:rotate(120deg) translateY(-142%);-webkit-animation-delay:-.6664s;animation-delay:-.6664s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar6{-webkit-transform:rotate(150deg) translateY(-142%);-ms-transform:rotate(150deg) translateY(-142%);transform:rotate(150deg) translateY(-142%);-webkit-animation-delay:-.5831s;animation-delay:-.5831s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar7{-webkit-transform:rotate(180deg) translateY(-142%);-ms-transform:rotate(180deg) translateY(-142%);transform:rotate(180deg) translateY(-142%);-webkit-animation-delay:-.4998s;animation-delay:-.4998s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar8{-webkit-transform:rotate(210deg) translateY(-142%);-ms-transform:rotate(210deg) translateY(-142%);transform:rotate(210deg) translateY(-142%);-webkit-animation-delay:-.4165s;animation-delay:-.4165s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar9{-webkit-transform:rotate(240deg) translateY(-142%);-ms-transform:rotate(240deg) translateY(-142%);transform:rotate(240deg) translateY(-142%);-webkit-animation-delay:-.3332s;animation-delay:-.3332s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar10{-webkit-transform:rotate(270deg) translateY(-142%);-ms-transform:rotate(270deg) translateY(-142%);transform:rotate(270deg) translateY(-142%);-webkit-animation-delay:-.2499s;animation-delay:-.2499s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar11{-webkit-transform:rotate(300deg) translateY(-142%);-ms-transform:rotate(300deg) translateY(-142%);transform:rotate(300deg) translateY(-142%);-webkit-animation-delay:-.1666s;animation-delay:-.1666s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar12{-webkit-transform:rotate(330deg) translateY(-142%);-ms-transform:rotate(330deg) translateY(-142%);transform:rotate(330deg) translateY(-142%);-webkit-animation-delay:-.0833s;animation-delay:-.0833s}@-webkit-keyframes fade{0%{opacity:1}to{opacity:.25}}@keyframes fade{0%{opacity:1}to{opacity:.25}}.xgplayer-skin-default.xgplayer-is-enter .xgplayer-enter{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./cssfullscreen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./cssfullscreen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./cssfullscreen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-cssfullscreen,.xgplayer-skin-default .xgplayer-cssfullscreen-img{position:relative;-webkit-order:12;-moz-box-ordinal-group:13;order:12;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon{width:32px;margin-top:5px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-40px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover,.xgplayer-skin-default .xgplayer-cssfullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-47px}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen-img{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}.xgplayer-lang-is-en .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-46px}.lang-is-jp .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-120px}.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-60px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./volume.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./volume.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./volume.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-volume{outline:none;-webkit-order:4;-moz-box-ordinal-group:5;order:4;width:40px;height:40px;display:block;position:relative;z-index:18}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon{margin-top:8px;cursor:pointer;position:absolute;bottom:-9px}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:none}.xgplayer-skin-default .xgplayer-slider{display:none;position:absolute;width:28px;height:92px;background:rgba(0,0,0,.54);border-radius:1px;bottom:42px;outline:none}.xgplayer-skin-default .xgplayer-slider:after{content:\\\" \\\";display:block;height:15px;width:28px;position:absolute;bottom:-15px;left:0;z-index:20}.xgplayer-skin-default .xgplayer-bar,.xgplayer-skin-default .xgplayer-drag{display:block;position:absolute;bottom:6px;left:12px;background:hsla(0,0%,100%,.3);border-radius:100px;width:4px;height:76px;outline:none;cursor:pointer}.xgplayer-skin-default .xgplayer-drag{bottom:0;left:0;background:#fa1f41;max-height:76px}.xgplayer-skin-default .xgplayer-drag:after{content:\\\" \\\";display:inline-block;width:8px;height:8px;background:#fff;box-shadow:0 0 5px 0 rgba(0,0,0,.26);position:absolute;border-radius:50%;left:-2px;top:-6px}.xgplayer-skin-default.xgplayer-volume-active .xgplayer-slider,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:none}.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:block}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-large,.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:none}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:block}.xgplayer-skin-default.xgplayer-mobile .xgplayer-volume .xgplayer-slider{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./definition.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./definition.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./definition.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-definition{-webkit-order:5;-moz-box-ordinal-group:6;order:5;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-left:10px;margin-top:-119px}.xgplayer-skin-default .xgplayer-definition ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:0;text-align:center;white-space:nowrap;margin-left:-10px;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-definition ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-skin-default .xgplayer-definition ul li.selected,.xgplayer-skin-default .xgplayer-definition ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-definition .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-definition ul,.xgplayer-skin-default.xgplayer-is-definition .xgplayer-definition{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playbackRate.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playbackRate.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playbackRate.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-playbackrate{-webkit-order:8;-moz-box-ordinal-group:9;order:8;width:60px;height:150px;z-index:18;position:relative;display:inline-block;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-playbackrate ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);text-align:left;white-space:nowrap;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-playbackrate ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);position:relative;padding:4px 0;text-align:center}.xgplayer-skin-default .xgplayer-playbackrate ul li.selected,.xgplayer-skin-default .xgplayer-playbackrate ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-playbackrate ul li:first-child{position:relative;margin-top:12px}.xgplayer-skin-default .xgplayer-playbackrate ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-skin-default .xgplayer-playbackrate .name{width:60px;height:20px;position:absolute;bottom:0;text-align:center;font-family:PingFangSC-Regular;font-size:13px;background:rgba(0,0,0,.38);color:hsla(0,0%,100%,.8);border-radius:10px;line-height:20px}.xgplayer-skin-default .xgplayer-playbackrate span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-skin-default .xgplayer-playbackrate:hover{opacity:1}.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-playbackrate ul{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./download.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./download.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./download.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-download{position:relative;-webkit-order:9;-moz-box-ordinal-group:10;order:9;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-download .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-download .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-download .xgplayer-icon svg{position:relative;top:5px;left:5px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips{margin-left:-20px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips .xgplayer-tip-download{display:block}.xgplayer-skin-default .xgplayer-download:hover{opacity:.85}.xgplayer-skin-default .xgplayer-download:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-download .xgplayer-tips{margin-left:-32px}.xgplayer-lang-is-jp .xgplayer-download .xgplayer-tips{margin-left:-40px}\", \"\"]);\n\n// exports\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./danmu.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./danmu.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./danmu.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .danmu-switch{-webkit-order:6;-moz-box-ordinal-group:7;order:6;z-index:26}.xgplayer-skin-default .xgplayer-danmu{display:none;position:absolute;top:0;left:0;right:0;height:100%;overflow:hidden;z-index:9;outline:none}.xgplayer-skin-default .xgplayer-danmu>*{position:absolute;white-space:nowrap;z-index:9}.xgplayer-skin-default .xgplayer-danmu.xgplayer-has-danmu{display:block}.xgplayer-skin-default .xgplayer-panel{outline:none;-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:40px;height:40px;display:inline-block;position:relative;font-family:PingFangSC-Regular;font-size:13px;color:hsla(0,0%,100%,.8);z-index:36}.xgplayer-skin-default .xgplayer-panel .xgplayer-panel-icon{cursor:pointer;position:absolute;margin-left:5px;top:10px}.xgplayer-skin-default .xgplayer-panel-active{display:block!important;bottom:30px}.xgplayer-skin-default .xgplayer-panel-slider{z-index:36;display:none;position:absolute;width:230px;height:230px;background:rgba(0,0,0,.54);border-radius:1px;padding:10px 20px;outline:none;left:-115px;bottom:40px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode{padding-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-radio li{display:inline;list-style:none;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode ul{display:-webkit-flex;display:-moz-box;display:flex;-webkit-justify-content:space-around;justify-content:space-around}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode li{margin:0 12px;font-size:11px;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-font{margin-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency{display:block;margin-top:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-progress{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:4px;background:linear-gradient(90deg,#f85959,#f85959 100%,#aaa)}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea{display:block;margin-top:8px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-threequarters,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-twoquarters{margin-left:-6px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-full{margin-right:3px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-full-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-onequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-threequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-twoquarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-zero-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./pip.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./pip.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./pip.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-pip{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-pip .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-pip .name span{width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.lang-is-jp .xgplayer-pip .name span{width:70px;height:20px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./miniplayer.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./miniplayer.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./miniplayer.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-miniplayer{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-miniplayer .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-miniplayer .name span{width:80px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-miniplayer-lay{position:absolute;top:26px;left:0;width:100%;height:100%;z-index:130;cursor:pointer;background-color:transparent;display:none}.xgplayer-skin-default .xgplayer-miniplayer-lay div{width:100%;height:100%}.xgplayer-skin-default .xgplayer-miniplayer-drag{cursor:move;position:absolute;top:0;left:0;width:100%;height:26px;line-height:26px;background-image:linear-gradient(rgba(0,0,0,.3),transparent);z-index:130;display:none}.xgplayer-skin-default .xgplayer-miniplayer-drag .drag-handle{width:100%}.xgplayer-skin-default.xgplayer-miniplayer-active{position:fixed;right:0;bottom:200px;width:320px;height:180px;z-index:110}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-controls,.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-danmu{display:none}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-lay{display:block}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-drag{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-skin-default.xgplayer-inactive .xgplayer-miniplayer-drag{display:none}.lang-is-jp .xgplayer-miniplayer .name span{width:70px;height:20px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playNext.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playNext.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./playNext.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-playnext{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;cursor:pointer;top:-2px}.xgplayer-skin-default .xgplayer-playnext .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-playnext .xgplayer-tips .xgplayer-tip-playnext{display:block}.xgplayer-skin-default .xgplayer-playnext:hover{opacity:.85}.xgplayer-skin-default .xgplayer-playnext:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-playnext .xgplayer-tips{margin-left:-25px}.xgplayer-lang-is-jp .xgplayer-playnext .xgplayer-tips{margin-left:-38px}.xgplayer-skin-default.xgplayer-playnext-inactive .xgplayer-playnext{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./rotate.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./rotate.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./rotate.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-rotate{position:relative;-webkit-order:10;-moz-box-ordinal-group:11;order:10;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips .xgplayer-tip-rotate{display:block}.xgplayer-skin-default .xgplayer-rotate:hover{opacity:.85}.xgplayer-skin-default .xgplayer-rotate:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-rotate .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-rotate .xgplayer-tips{margin-left:-38px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./reload.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./reload.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./reload.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-reload{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;width:40px;height:40px;cursor:pointer}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips .xgplayer-tip-reload{display:block}.xgplayer-skin-default .xgplayer-reload:hover{opacity:.85}.xgplayer-skin-default .xgplayer-reload:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-reload .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-reload .xgplayer-tips{margin-left:-38px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./screenShot.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./screenShot.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./screenShot.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-screenshot{-webkit-order:11;-moz-box-ordinal-group:12;order:11;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-screenshot .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-screenshot .name span{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:0 10px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-lang-is-en .xgplayer-screenshot .name span,.xgplayer-lang-is-jp .xgplayer-screenshot .name span{width:75px;height:20px}\", \"\"]);\n\n// exports\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-texttrack{-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-texttrack ul{display:none;list-style:none;min-width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;text-align:center;white-space:nowrap;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-texttrack ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:auto;padding:6px 13px}.xgplayer-skin-default .xgplayer-texttrack ul li.selected,.xgplayer-skin-default .xgplayer-texttrack ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-texttrack .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-texttrack.xgplayer-texttrack-hide{display:none}xg-text-track{transition:bottom .3s ease}.xgplayer-skin-default.xgplayer-is-texttrack .xgplayer-texttrack,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-texttrack ul{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./error.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./error.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./error.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:125;font-family:PingFangSC-Regular;font-size:14px;color:#fff;text-align:center;line-height:100%;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center}.xgplayer-skin-default .xgplayer-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-skin-default .xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px}.xgplayer-skin-default.xgplayer-is-error .xgplayer-error{display:-webkit-flex;display:-moz-box;display:flex}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./memoryPlay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./memoryPlay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./memoryPlay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-memoryplay-spot{position:absolute;height:32px;left:10px;bottom:46px;background:rgba(0,0,0,.5);border-radius:32px;line-height:32px;color:#ddd;z-index:15;padding:0 32px 0 16px}.xgplayer-skin-default .xgplayer-memoryplay-spot .xgplayer-lasttime{color:red;font-weight:700}.xgplayer-skin-default .xgplayer-memoryplay-spot .btn-close{position:absolute;width:16px;height:16px;right:10px;top:2px;cursor:pointer;color:#fff;font-size:16px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./airplay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./airplay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js!./airplay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-airplay{position:relative;-webkit-order:11;-moz-box-ordinal-group:12;order:11;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon{margin-top:6px;margin-left:6px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon .xgplayer-icon-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips .xgplayer-tip-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay:hover{opacity:.85}.xgplayer-skin-default .xgplayer-airplay:hover .xgplayer-tips{display:block}\", \"\"]);\n\n// exports\n","let airplay = function () {\n let player = this\n if(!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent) return\n\n function onAirplayBtnClick () {\n player.video.webkitShowPlaybackTargetPicker()\n }\n player.on('airplayBtnClick', onAirplayBtnClick)\n\n function onDestroy () {\n player.off('airplayBtnClick', onAirplayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'airplay',\n method: airplay\n}\n","import { hasClass, removeClass, addClass } from '../utils/util'\n\nlet cssFullscreen = function () {\n let player = this\n let root = player.root\n\n function onCssFullscreenBtnClick () {\n if (hasClass(root, 'xgplayer-is-cssfullscreen')) {\n player.exitCssFullscreen()\n } else {\n player.getCssFullscreen()\n }\n }\n player.on('cssFullscreenBtnClick', onCssFullscreenBtnClick)\n player.on('exitFullscreen', () => {\n removeClass(root, 'xgplayer-is-cssfullscreen')\n })\n\n function onDestroy () {\n player.off('cssFullscreenBtnClick', onCssFullscreenBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getCssFullscreen = function () {\n let player = this\n if (player.config.fluid) {\n player.root.style['padding-top'] = ''\n }\n addClass(player.root, 'xgplayer-is-cssfullscreen')\n player.emit('requestCssFullscreen')\n }\n\n player.exitCssFullscreen = function () {\n let player = this\n if (player.config.fluid) {\n player.root.style['width'] = '100%'\n player.root.style['height'] = '0'\n player.root.style['padding-top'] = `${player.config.height * 100 / player.config.width}%`\n }\n removeClass(player.root, 'xgplayer-is-cssfullscreen')\n player.emit('exitCssFullscreen')\n }\n}\n\nexport default {\n name: 'cssFullscreen',\n method: cssFullscreen\n}","import { addClass, toggleClass, copyDom, hasClass, removeClass } from '../utils/util'\n\nlet danmu = function () {\n let player = this\n\n function onInitDanmu(danmujs) {\n let container = player.root.querySelector('xg-danmu')\n addClass(container, 'xgplayer-has-danmu')\n if (!player.config.danmu.closeDefaultBtn) {\n player.danmuBtn = copyDom(danmujs.bulletBtn.createSwitch(true))\n player.controls.appendChild(player.danmuBtn)\n\n function onTimeupdate () {\n danmujs.start()\n }\n ['click', 'touchend'].forEach(item => {\n player.danmuBtn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n toggleClass(player.danmuBtn, 'danmu-switch-active')\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n player.emit('danmuBtnOn')\n addClass(container, 'xgplayer-has-danmu')\n player.once('timeupdate', onTimeupdate)\n } else {\n player.emit('danmuBtnOff')\n removeClass(container, 'xgplayer-has-danmu')\n danmujs.stop()\n }\n })\n })\n\n player.onElementClick && container.addEventListener('click', function (e) { player.onElementClick(e, container) }, false)\n player.onElementDblclick && container.addEventListener('dblclick', function (e) { player.onElementDblclick(e, container) }, false)\n\n function onPause () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.pause()\n }\n }\n player.on('pause', onPause)\n\n function onPlay () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.play()\n }\n }\n player.on('play', onPlay)\n\n function onSeeked () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.stop()\n danmujs.start()\n }\n }\n player.on('seeked', onSeeked)\n\n function onDestroy () {\n player.off('timeupdate', onTimeupdate)\n player.off('pause', onPause)\n player.off('play', onPlay)\n player.off('seeked', onSeeked)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n }\n }\n player.on('initDefaultDanmu', onInitDanmu)\n\n}\n\nexport default {\n name: 'danmu',\n method: danmu\n}","let definition = function () {\n let player = this\n\n function onDestroy () {\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'definition',\n method: definition\n}","import downloadUtil from 'downloadjs'\nimport {getAbsoluteURL} from '../utils/url'\n\nlet download = function () {\n let player = this\n\n function onDownloadBtnClick () {\n // must pass an absolute url for download\n player.download()\n }\n player.on('downloadBtnClick', onDownloadBtnClick)\n\n function onDestroy () {\n player.off('downloadBtnClick', onDownloadBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.download = function () {\n const url = getAbsoluteURL(this.config.url)\n downloadUtil(url)\n }\n}\n\nexport default {\n name: 'download',\n method: download\n}","\nexport const getAbsoluteURL = function (url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n const div = document.createElement('div')\n div.innerHTML = `<a href=\"${url}\">x</a>`\n url = div.firstChild.href\n }\n return url\n}\n","import Errors from '../error'\n/**\n * Error retry plugin\n * get config from player.config.errorConfig\n * The Plugin is just deal with the situation that play with video.src,\n * and get the http status of current video.src\n */\n\nconst defaultConfig = {\n maxCount: 3, // max number of retries\n backupUrl: '', // the backup url for retry\n isFetch: true, // is need to check the cdn url statud\n fetchTimeout: 100 // timeout time for get cdn status\n}\n\nfunction errorRetry () {\n const player = this\n // 无设置参数或者是通过扩展播放的不做处理\n if (!player.config.errorConfig || player.src.indexOf('blob:') > -1) {\n return\n }\n const errorConfig = {}\n const _inConfig = player.config.errorConfig\n for (const key in defaultConfig) {\n if (_inConfig[key] === undefined) {\n errorConfig[key] = defaultConfig[key]\n } else {\n errorConfig[key] = _inConfig[key]\n }\n }\n player.retryData = {\n count: 0, // 重试次数\n errfTimer: null, // 超时设置定时器\n isFetchReturn: false, // fetch请求是否已经返回\n currentTime: 0 // 出错的时候时间\n }\n\n function errorfetch (player, url, timeout) {\n const resolveFun = (resolve, data) => {\n if (!player.retryData.isFetchReturn) {\n player.retryData.isFetchReturn = true\n resolve(data)\n }\n }\n return new Promise((resolve, reject) => {\n try {\n let xhr = new window.XMLHttpRequest()\n xhr.open('get', url)\n xhr.onload = function () {\n resolveFun(resolve, {status: xhr.status, statusText: xhr.statusText, xhr})\n }\n xhr.onerror = function () {\n resolveFun(resolve, {status: xhr.status, statusText: xhr.statusText || 'The network environment is disconnected or the address is invalid', xhr})\n }\n xhr.onabort = function () {\n // console.log('task onerror', xhr)\n }\n player.retryData.errfTimer = window.setTimeout(() => {\n let errfTimer = player.retryData.errfTimer\n window.clearTimeout(errfTimer)\n player.retryData.errfTimer = null\n resolveFun(resolve, {status: -1, statusText: 'request timeout'})\n }, timeout)\n xhr.send()\n } catch (err) {\n player.retryData.isFetchReturn = true\n resolveFun(resolve, {status: -2, statusText: 'request error'})\n }\n })\n }\n\n function retryCanPlay () {\n // console.log(`retryCanPlay this.retryData.currentTime:${this.retryData.currentTime}`)\n this.currentTime = this.retryData.currentTime\n this.play()\n this.retryData.retryCode = 0\n this.retryData.isFetchReturn = false\n this.retryData.currentTime = 0\n }\n\n const _originErrorEmit = player._onError\n player._onError = (data) => {\n const errorCount = this.retryData.count\n // console.log(`originErrorEmit:errorCount:${errorCount}`, data)\n if (errorCount > errorConfig.maxCount) {\n if (errorConfig.isFetch) {\n errorfetch(this, this.currentSrc, errorConfig.fetchTimeout).then((data) => {\n this.emit('error', new Errors({\n type: 'network',\n currentTime: this.currentTime,\n duration: this.duration || 0,\n networkState: this.networkState,\n readyState: this.readyState,\n currentSrc: this.currentSrc,\n src: this.src,\n ended: this.ended,\n httpCode: data.status,\n httpMsg: data.statusText,\n errd: {\n line: 101,\n msg: this.error,\n handle: 'plugin errorRetry'\n },\n errorCode: this.video && this.video.error.code,\n mediaError: this.video && this.video.error\n }));\n _originErrorEmit.call(this, data)\n })\n } else {\n _originErrorEmit.call(this, data)\n }\n return;\n }\n if (errorCount === 0) {\n this.retryData.currentTime = this.currentTime\n this.once('canplay', retryCanPlay.bind(this))\n }\n let src = ''\n if (errorConfig.count < 2) {\n src = errorConfig.backupUrl ? errorConfig.backupUrl : player.currentSrc\n } else {\n src = errorConfig.backupUrl && errorCount > 1 ? errorConfig.backupUrl : player.currentSrc\n }\n this.retryData.count++\n this.src = src\n }\n}\n\nexport default {\n name: 'errorretry',\n method: errorRetry\n}","import { on, hasClass, removeClass, addClass } from '../utils/util'\nclass Keyboard {\n constructor (player) {\n this.player = player\n this.state = {\n playbackRate: 0,\n isRepeat: false,\n keyCode: 0,\n repeat: 0,\n isBody: false\n }\n this.timer = null\n this.initEvents()\n }\n\n initEvents () {\n const {root, config} = this.player\n this.player.onBodyKeydown = this.onBodyKeydown.bind(this)\n this.player.onKeydown = this.onKeydown.bind(this)\n this.player.onKeyup = this.onKeyup.bind(this)\n if (!config.keyShortcut || config.keyShortcut === 'on') {\n document.addEventListener('keydown', this.player.onBodyKeydown)\n root.addEventListener('keydown', this.player.onKeydown)\n let destroyFunc = () => {\n document.removeEventListener('keydown', this.player.onBodyKeydown)\n root.removeEventListener('keydown', this.player.onKeydown)\n clearTimeout(this.timer)\n this.timer = null\n }\n on(this.player, 'destroy', destroyFunc)\n }\n }\n\n checkTarget (e) {\n const {player} = this\n return e.target === player.root || e.target === player.video || e.target === player.controls\n }\n\n onBodyKeydown (event) {\n let e = event || window.event\n const keyCode = e.keyCode\n if ((e.target === document.body) && (keyCode === 37 || keyCode === 39 || keyCode === 32)) {\n e.preventDefault()\n e.cancelBubble = true\n e.returnValue = false\n if (!e.repeat) {\n document.addEventListener('keyup', this.player.onKeyup)\n }\n this.handler(e)\n return false\n }\n }\n\n onKeydown (event) {\n let e = event || window.event\n const keyCode = e.keyCode\n if (this.checkTarget(e) && (keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40 || keyCode === 32 || keyCode === 27)) {\n e.preventDefault()\n e.cancelBubble = true\n e.returnValue = false\n this.player.emit('focus')\n if (!e.repeat) {\n this.player.root.addEventListener('keyup', this.player.onKeyup)\n }\n this.handler(e)\n return false\n }\n }\n\n onKeyup () {\n const {state, player} = this\n document.removeEventListener('keyup', this.player.onKeyup)\n player.root.removeEventListener('keyup', this.player.onKeyup)\n if (!state.keyCode) {\n return\n }\n if (state.playbackRate !== 0) {\n player.playbackRate = state.playbackRate\n }\n\n if (!state.isRepeat) {\n this.handlerKeyCode(state.keyCode, false)\n }\n state.playbackRate = 0\n state.isRepeat = false\n state.keyCode = 0\n state.repeat = 0\n this.changeVolumeSlide()\n }\n\n handler (e) {\n const {state, player} = this\n state.keyCode = e.keyCode\n state.isRepeat = e.repeat\n if (e.repeat) {\n if (player.config.disableLongPress) {\n this.handlerKeyCode(state.keyCode, false)\n } else if(state.repeat % 2 === 0) {\n this.handlerKeyCode(state.keyCode, true)\n }\n state.repeat++\n }\n }\n\n handlerKeyCode (keyCode, isLonePress) {\n const {player, state} = this\n switch (keyCode) {\n case 39:\n // 快进\n if (isLonePress) {\n state.repeat === 0 && this.changeRate()\n } else {\n this.seek(false, isLonePress)\n }\n break\n case 37:\n // 快退\n this.seek(true, isLonePress)\n break\n case 38:\n this.changeVolume(true)\n // 上\n break\n case 40:\n this.changeVolume(false)\n // 下\n break\n case 32:\n if (!isLonePress) {\n player.paused ? player.play() : player.pause()\n }\n break\n case 27:\n if (hasClass(player.root, 'xgplayer-is-cssfullscreen')) {\n player.exitCssFullscreen()\n }\n break\n default:\n //\n }\n }\n\n seek (isBack, isLongPress) {\n const {player} = this\n const keyShortcutStep = player.config.keyShortcutStep || {}\n const currentTimeStep = keyShortcutStep.currentTime || 10\n if (player.isLoading || player.isSeeking || (isLongPress && this.state.repeat % 8 > 0)) {\n return\n }\n if (isBack) {\n if (player.currentTime - currentTimeStep >= 0) {\n player.currentTime -= currentTimeStep\n } else {\n player.currentTime = 0\n }\n } else {\n if(player.maxPlayedTime && player.config.allowSeekPlayed && (player.currentTime + currentTimeStep > player.maxPlayedTime)) {\n player.currentTime = player.maxPlayedTime\n } else {\n if (player.currentTime + currentTimeStep <= player.duration) {\n player.currentTime += currentTimeStep\n } else {\n player.currentTime = player.duration + 1\n }\n }\n }\n }\n\n changeRate () {\n this.state.playbackRate = this.player.playbackRate\n this.player.playbackRate = this.player.config.keyboardRate || 5\n }\n\n changeVolumeSlide (show) {\n const {player} = this\n if (!player.controls) {\n return\n }\n if (show) {\n player.emit('focus')\n if (!hasClass(player.root, 'xgplayer-volume-active')) {\n addClass(player.root, 'xgplayer-volume-active')\n }\n } else {\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n removeClass(player.root, 'xgplayer-volume-active')\n }, 1000)\n }\n }\n\n changeVolume (isup) {\n const {player} = this\n const keyShortcutStep = player.config.keyShortcutStep || {}\n const volumeStep = keyShortcutStep.volume || 0.1\n this.changeVolumeSlide(true)\n const volume = player.volume\n if (isup && volume + volumeStep <= 1) {\n player.volume = volume + volumeStep\n } else if (!isup && volume - volumeStep >= 0) {\n player.volume = volume - volumeStep\n }\n }\n}\n\nlet keyboard = function () {\n let player = this\n player.keyboard = new Keyboard(player)\n}\n\nexport default {\n name: 'keyboard',\n method: keyboard\n}","import { hasClass } from '../utils/util'\n\nlet localPreview = function () {\n let player = this\n let root = player.root\n function onUpload (upload) {\n player.uploadFile = upload.files[0]\n let url = URL.createObjectURL(player.uploadFile)\n if (hasClass(root, 'xgplayer-nostart')) {\n player.config.url = url\n player.start()\n } else {\n player.src = url\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n }\n player.on('upload', onUpload)\n\n function onDestroy () {\n player.off('upload', onUpload)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'localPreview',\n method: localPreview\n}","let memoryPlay = function () {\n let player = this\n player.on('memoryPlayStart', (lastPlayTime) => {\n player.currentTime = lastPlayTime\n })\n}\n\nexport default {\n name: 'memoryPlay',\n method: memoryPlay\n}","import { findDom, hasClass, createDom, addClass, removeClass } from '../utils/util'\nimport Draggabilly from 'draggabilly'\n\nlet miniplayer = function () {\n let player = this\n let root = player.root\n function onMiniplayerBtnClick () {\n if (hasClass(root, 'xgplayer-miniplayer-active')) {\n player.exitMiniplayer()\n } else {\n player.getMiniplayer()\n }\n }\n player.on('miniplayerBtnClick', onMiniplayerBtnClick)\n\n function onDestroy () {\n player.off('miniplayerBtnClick', onMiniplayerBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getMiniplayer = function () {\n if (hasClass(root, 'xgplayer-is-fullscreen')) {\n this.exitFullscreen(root)\n }\n if (hasClass(root, 'xgplayer-is-cssfullscreen')) {\n this.exitCssFullscreen()\n }\n if (hasClass(root, 'xgplayer-rotate-fullscreen')) {\n this.exitRotateFullscreen()\n }\n // let ro = this.root.getBoundingClientRect()\n // let Top = ro.top\n // let Left = ro.left\n let dragLay = createDom('xg-miniplayer-lay', '<div></div>', {}, 'xgplayer-miniplayer-lay')\n this.root.appendChild(dragLay)\n let dragHandle = createDom('xg-miniplayer-drag', `<div class=\"drag-handle\"><span>${this.lang.MINIPLAYER_DRAG}</span></div>`, {tabindex: 9}, 'xgplayer-miniplayer-drag')\n this.root.appendChild(dragHandle)\n // eslint-disable-next-line no-unused-vars\n let draggie = new Draggabilly('.xgplayer', {\n handle: '.drag-handle'\n })\n addClass(this.root, 'xgplayer-miniplayer-active')\n this.root.style.right = 0\n this.root.style.bottom = '200px'\n this.root.style.top = ''\n this.root.style.left = ''\n this.root.style.width = '320px'\n this.root.style.height = '180px'\n if (this.config.miniplayerConfig) {\n if (this.config.miniplayerConfig.top !== undefined) {\n this.root.style.top = this.config.miniplayerConfig.top + 'px'\n this.root.style.bottom = ''\n }\n if (this.config.miniplayerConfig.bottom !== undefined) {\n this.root.style.bottom = this.config.miniplayerConfig.bottom + 'px'\n }\n if (this.config.miniplayerConfig.left !== undefined) {\n this.root.style.left = this.config.miniplayerConfig.left + 'px'\n this.root.style.right = ''\n }\n if (this.config.miniplayerConfig.right !== undefined) {\n this.root.style.right = this.config.miniplayerConfig.right + 'px'\n }\n if (this.config.miniplayerConfig.width !== undefined) {\n this.root.style.width = this.config.miniplayerConfig.width + 'px'\n }\n if (this.config.miniplayerConfig.height !== undefined) {\n this.root.style.height = this.config.miniplayerConfig.height + 'px'\n }\n }\n if (this.config.fluid) {\n this.root.style['padding-top'] = ''\n }\n let player = this;\n ['click', 'touchend'].forEach(item => {\n dragLay.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.exitMiniplayer()\n // player.root.style.top = `${Top}px`\n // player.root.style.left = `${Left}px`\n })\n })\n }\n\n player.exitMiniplayer = function () {\n removeClass(this.root, 'xgplayer-miniplayer-active')\n this.root.style.right = ''\n this.root.style.bottom = ''\n this.root.style.top = ''\n this.root.style.left = ''\n if (this.config.fluid) {\n this.root.style['width'] = '100%'\n this.root.style['height'] = '0'\n this.root.style['padding-top'] = `${this.config.height * 100 / this.config.width}%`\n } else {\n if (this.config.width) {\n if (typeof this.config.width !== 'number') {\n this.root.style.width = this.config.width\n } else {\n this.root.style.width = `${this.config.width}px`\n }\n }\n if (this.config.height) {\n if (typeof this.config.height !== 'number') {\n this.root.style.height = this.config.height\n } else {\n this.root.style.height = `${this.config.height}px`\n }\n }\n }\n\n let dragLay = findDom(this.root, '.xgplayer-miniplayer-lay')\n if (dragLay && dragLay.parentNode) {\n dragLay.parentNode.removeChild(dragLay)\n }\n let dragHandle = findDom(this.root, '.xgplayer-miniplayer-drag')\n if (dragHandle && dragHandle.parentNode) {\n dragHandle.parentNode.removeChild(dragHandle)\n }\n }\n}\n\nexport default {\n name: 'miniplayer',\n method: miniplayer\n}","\nimport { PresentationMode, checkWebkitSetPresentationMode } from '../utils/util'\n\nlet pip = function () {\n let player = this\n function onPipBtnClick () {\n if (player.video !== document.pictureInPictureElement) {\n player.video.requestPictureInPicture()\n } else {\n document.exitPictureInPicture()\n }\n }\n player.on('pipBtnClick', onPipBtnClick)\n\n const onWebkitpresentationmodechanged = (e) => {\n const mode = player.video.webkitPresentationMode\n this.pMode = mode\n if (mode === PresentationMode.PIP) {\n // 进入pip模式\n player.emit('requestPictureInPicture', e.pictureInPictureWindow)\n } else if (mode === PresentationMode.INLINE) {\n // 退出pip,进去inline模式\n player.emit('exitPictureInPicture')\n }\n }\n\n player.video.addEventListener('enterpictureinpicture', function (pipWindow) {\n player.emit('requestPictureInPicture', pipWindow)\n })\n\n player.video.addEventListener('leavepictureinpicture', function () {\n player.emit('exitPictureInPicture')\n })\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.addEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n function onDestroy () {\n player.off('pipBtnClick', onPipBtnClick)\n player.off('destroy', onDestroy)\n checkWebkitSetPresentationMode(player.video) &&\n player.video.removeEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'pip',\n method: pip\n}\n","let playNext = function () {\n let player = this\n let nextBtn = player.config.playNext\n player.currentVideoIndex = -1\n\n function onPlayNextBtnClick () {\n if (player.currentVideoIndex + 1 < nextBtn.urlList.length) {\n player.currentVideoIndex++\n player.video.autoplay = true\n player.src = nextBtn.urlList[player.currentVideoIndex]\n player.emit('playerNext', player.currentVideoIndex + 1)\n if (player.currentVideoIndex + 1 === nextBtn.urlList.length) {\n player.emit('urlListEnd')\n }\n }\n }\n player.on('playNextBtnClick', onPlayNextBtnClick)\n\n function onDestroy () {\n player.off('playNextBtnClick', onPlayNextBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'playNext',\n method: playNext\n}","import { removeClass } from '../utils/util'\n\nlet reload = function () {\n let player = this\n let reloadConfig = player.config.reload\n if (!reloadConfig) { return }\n\n function onReloadBtnClick () {\n removeClass(player.root, 'xgplayer-is-error')\n player.src = player.config.url\n }\n player.on('reloadBtnClick', onReloadBtnClick)\n\n function onDestroy () {\n player.off('reloadBtnClick', onReloadBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'reload',\n method: reload\n}","let rotate = function () {\n let player = this\n let rotateConfig = player.config.rotate\n if (!rotateConfig) { return }\n\n function onRotateBtnClick () {\n player.rotate(rotateConfig.clockwise, rotateConfig.innerRotate)\n }\n player.on('rotateBtnClick', onRotateBtnClick)\n\n function onDestroy () {\n player.off('rotateBtnClick', onRotateBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.updateRotateDeg = function () {\n let player = this;\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n\n let width = player.root.offsetWidth\n let height = player.root.offsetHeight\n let targetWidth = player.video.videoWidth\n let targetHeight = player.video.videoHeight\n\n if (!player.config.rotate.innerRotate && player.config.rotate.controlsFix) {\n player.root.style.width = height + 'px'\n player.root.style.height = width + 'px'\n }\n\n let scale\n if (player.rotateDeg === 0.25 || player.rotateDeg === 0.75) {\n if (player.config.rotate.innerRotate) {\n if ((targetWidth / targetHeight) > (height / width)) { // 旋转后纵向撑满\n let videoWidth = 0\n if ((targetHeight / targetWidth) > (height / width)) { // 旋转前是纵向撑满\n videoWidth = height * targetWidth / targetHeight\n } else { // 旋转前是横向撑满\n videoWidth = width\n }\n scale = height / videoWidth\n } else { // 旋转后横向撑满\n let videoHeight = 0\n if ((targetHeight / targetWidth) > (height / width)) { // 旋转前是纵向撑满\n videoHeight = height\n } else { // 旋转前是横向撑满\n videoHeight = width * targetHeight / targetWidth\n }\n scale = width / videoHeight\n }\n } else {\n if (width >= height) {\n scale = width / height\n } else {\n scale = height / width\n }\n }\n scale = Number(scale.toFixed(5))\n } else {\n scale = 1\n }\n\n if (player.config.rotate.innerRotate) {\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n if (player.config.rotate.controlsFix) {\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n player.root.style.transformOrigin = 'center center'\n player.root.style.transform = `rotate(${player.rotateDeg}turn) scale(${1})`\n player.root.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${1})`\n }\n }\n }\n\n player.rotate = function (clockwise = false, innerRotate = true, times = 1) {\n let player = this;\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n let factor = clockwise ? 1 : -1\n\n player.rotateDeg = (player.rotateDeg + 1 + factor * 0.25 * times) % 1\n this.updateRotateDeg()\n\n player.emit('rotate', player.rotateDeg * 360)\n }\n}\n\nexport default {\n name: 'rotate',\n method: rotate\n}","let screenShot = function () {\n let player = this\n let screenShotOptions = player.config.screenShot\n if (!screenShotOptions) {\n return\n }\n\n player.video.setAttribute('crossOrigin', 'anonymous')\n\n let encoderOptions = 0.92\n if(screenShotOptions.quality || screenShotOptions.quality === 0) {\n encoderOptions = screenShotOptions.quality\n }\n let type = screenShotOptions.type === undefined ? 'image/png' : screenShotOptions.type\n let format = screenShotOptions.format === undefined ? '.png' : screenShotOptions.format\n\n let canvas = document.createElement('canvas')\n let canvasCtx = canvas.getContext('2d')\n let img = new Image()\n canvas.width = this.config.width || 600\n canvas.height = this.config.height || 337.5\n\n let saveScreenShot = function (data, filename) {\n let saveLink = document.createElement('a')\n saveLink.href = data\n saveLink.download = filename\n let event = document.createEvent('MouseEvents')\n event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)\n saveLink.dispatchEvent(event)\n }\n\n player.screenShot = function (save = true) {\n save = screenShotOptions.saveImg === undefined ? save : screenShotOptions.saveImg\n canvas.width = player.video.videoWidth || 600\n canvas.height = player.video.videoHeight || 337.5\n img.onload = (function () {\n canvasCtx.drawImage(player.video, 0, 0, canvas.width, canvas.height)\n img.src = canvas.toDataURL(type, encoderOptions).replace(type, 'image/octet-stream')\n let screenShotImg = img.src.replace(/^data:image\\/[^;]+/, 'data:application/octet-stream')\n player.emit('screenShot', screenShotImg)\n save && saveScreenShot(screenShotImg, '截图' + format)\n })()\n }\n player.on('screenShotBtnClick', player.screenShot)\n\n function onDestroy () {\n player.off('screenShotBtnClick', player.screenShot)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'screenShot',\n method: screenShot\n}","import Errors from '../error'\n\nfunction stallCheck () {\n const player = this\n if(!player.config.enableStallCheck) return;\n let lastCurrentTime = 0;\n let stallFlag, stallCheckTimer, progressTimer;\n player.once('complete', () => {\n progressTimer = setInterval(() => {\n if (player.currentTime - (lastCurrentTime || 0) > 0.1 || player.paused) {\n if (stallFlag === 1 || stallFlag === 2) {\n stallFlag = 0;\n clearTimeout(stallCheckTimer);\n stallCheckTimer = null;\n }\n } else {\n if (!stallFlag) {\n stallFlag = 1;\n stallCheckTimer = setTimeout(() => {\n if (stallFlag === 1) {\n stallFlag = 2;\n player.emit('error', new Errors('STALL'));\n }\n stallCheckTimer = null;\n }, 20000);\n }\n }\n lastCurrentTime = player.currentTime;\n }, 1000);\n })\n}\n \nexport default {\n name: 'stallCheck',\n method: stallCheck\n}\n\n\n","import { addClass, removeClass, event } from '../utils/util'\nimport sniffer from '../utils/sniffer'\n\nlet volume = function () {\n let player = this\n let root = player.root\n let container, slider, bar, selected\n function onCanplay () {\n // player.volume = sniffer.device === 'mobile' ? 1 : player.config.volume\n if(!player.controls) return\n player.volume = player.config.volume\n container = player.controls.querySelector('.xgplayer-volume')\n if(!container) return\n slider = container.querySelector('.xgplayer-slider')\n bar = container.querySelector('.xgplayer-bar')\n selected = container.querySelector('.xgplayer-drag')\n if (sniffer.device === 'mobile') {\n if(player.volume === 0) {\n player.video.muted = true\n }\n onVolumeChange()\n }\n }\n player.once('canplay', onCanplay)\n\n function onVolumeBarClick (e) {\n if(!slider) return\n player.video.muted = false\n slider.focus()\n event(e)\n\n let barRect = bar.getBoundingClientRect()\n let pos = {x: e.clientX, y: e.clientY}\n let height = selected.getBoundingClientRect().height\n let isMove = false\n let onMove = function (e) {\n e.preventDefault()\n e.stopPropagation()\n event(e)\n isMove = true\n let w = height - e.clientY + pos.y\n let now = w / barRect.height\n selected.style.height = `${w}px`\n player.volume = Math.max(Math.min(now, 1), 0)\n }\n let onUp = function (e) {\n e.preventDefault()\n e.stopPropagation()\n event(e)\n window.removeEventListener('mousemove', onMove)\n window.removeEventListener('touchmove', onMove)\n window.removeEventListener('mouseup', onUp)\n window.removeEventListener('touchend', onUp)\n\n if (!isMove) {\n let w = barRect.height - (e.clientY - barRect.top)\n let now = w / barRect.height\n selected.style.height = `${w}px`\n if (now <= 0) {\n if (player.volume > 0) {\n selected.volume = player.video.volume\n } else {\n now = selected.volume\n }\n }\n player.volume = Math.max(Math.min(now, 1), 0)\n }\n slider.volume = player.volume\n isMove = false\n }\n window.addEventListener('mousemove', onMove)\n window.addEventListener('touchmove', onMove)\n window.addEventListener('mouseup', onUp)\n window.addEventListener('touchend', onUp)\n return false\n }\n player.on('volumeBarClick', onVolumeBarClick)\n\n function onVolumeIconClick () {\n if (sniffer.device === 'mobile') {\n if (player.video.muted) {\n player.video.muted = false\n player.emit('unmute')\n player.volume = 1\n } else {\n player.video.muted = true\n player.emit('mute')\n player.volume = 0\n }\n } else {\n if(!slider) return\n player.video.muted = false\n if (player.volume < 0.1) {\n if (slider.volume < 0.1) {\n player.volume = 0.6\n } else {\n player.volume = slider.volume\n }\n player.emit('unmute')\n } else {\n player.volume = 0\n player.emit('mute')\n }\n }\n // onVolumeChange ()\n }\n player.on('volumeIconClick', onVolumeIconClick)\n\n function onVolumeIconEnter () {\n addClass(root, 'xgplayer-volume-active')\n if (container) {\n container.focus()\n }\n }\n player.on('volumeIconEnter', onVolumeIconEnter)\n\n function onVolumeIconLeave () {\n removeClass(root, 'xgplayer-volume-active')\n }\n player.on('volumeIconLeave', onVolumeIconLeave)\n\n let _changeTimer = null\n function onVolumeChange () {\n if (_changeTimer) {\n clearTimeout(_changeTimer)\n }\n _changeTimer = setTimeout(() => {\n if (sniffer.device === 'mobile') {\n removeClass(root, 'xgplayer-volume-muted')\n removeClass(root, 'xgplayer-volume-large')\n if (player.video.muted || player.video.defaultMuted) {\n if (!player.video.muted) {\n player.video.muted = true\n }\n player.video.defaultMuted = false\n addClass(root, 'xgplayer-volume-muted')\n } else {\n addClass(root, 'xgplayer-volume-large')\n }\n } else {\n removeClass(root, 'xgplayer-volume-muted')\n removeClass(root, 'xgplayer-volume-small')\n removeClass(root, 'xgplayer-volume-large')\n if (player.volume === 0 || player.muted) {\n addClass(root, 'xgplayer-volume-muted')\n } else if (player.volume < 0.5) {\n addClass(root, 'xgplayer-volume-small')\n } else {\n addClass(root, 'xgplayer-volume-large')\n }\n if (!bar) return\n let containerHeight = bar.getBoundingClientRect().height || 76\n selected.style.height = `${player.volume * containerHeight}px`\n }\n }, 50)\n }\n player.on('volumechange', onVolumeChange)\n\n function onDestroy () {\n player.off('canplay', onCanplay)\n player.off('volumeBarClick', onVolumeBarClick)\n player.off('volumeIconClick', onVolumeIconClick)\n player.off('volumeIconEnter', onVolumeIconEnter)\n player.off('volumeIconLeave', onVolumeIconLeave)\n player.off('volumechange', onVolumeChange)\n player.off('destroy', onDestroy)\n if (_changeTimer) {\n clearTimeout(_changeTimer);\n _changeTimer = null;\n }\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'volume',\n method: volume\n}","import SubTitles from 'xgplayer-subtitles'\nconst defaultStyle = {\n follow: true, // 是否跟随控制栏调整位置\n mode: 'stroke', // 字体显示模式,默认是描边\n followBottom: 50, // 跟随底部控制栏的高度\n fitVideo: true, // 是否跟随视频自动调整字号\n offsetBottom: 2, // 字幕距离画面底部百分比,默认2%\n baseSizeX: 49, // 横屏视频适配基准字号\n baseSizeY: 28, // 竖屏视频适配基准字号\n minSize: 16, // pc端最小字号\n minMobileSize: 13, // 移动端最小字号\n line: 'double', // 最大显示行数 single/double/three\n fontColor: '#fff' // 字体颜色\n}\n\n// function createSubTitle (textTrack, style = {}, defaultOpen = true) {\n// const config = {\n// subTitles: textTrack,\n// defaultOpen: defaultOpen\n// }\n\n// Object.keys(style).map(key => {\n// config[key] = style[key]\n// })\n// return new SubTitles(config)\n// }\n\nclass XgSubtitles {\n constructor (player, list, style) {\n const subtitle = this.create(list, style, player.textTrackShowDefault)\n subtitle.attachPlayer(player)\n this.subtitle = subtitle\n this.player = player\n this.positionData = {\n vBottom: 0,\n marginBottom: 0\n }\n this.isActive = false\n this.followBottom = style.followBottom;\n ['onSubtitleResize', 'onFocus', 'onBlur'].map(item => {\n this[item] = this[item].bind(this)\n })\n\n if (player.controls && style.follow) {\n this.subtitle.on('resize', this.onSubtitleResize)\n player.on('focus', this.onFocus)\n player.on('blur', this.onBlur)\n }\n }\n\n create (textTrack, style = {}, defaultOpen = true) {\n const config = {\n subTitles: textTrack,\n defaultOpen: defaultOpen\n }\n Object.keys(style).map(key => {\n config[key] = style[key]\n })\n return new SubTitles(config)\n }\n\n switch (subtitle) {\n return this.subtitle.switch(subtitle)\n }\n\n switchOff () {\n return this.subtitle.switchOff()\n }\n\n setSubTitles (subtitles, showDefault, isNeedMove) {\n return this.subtitle.setSubTitles(subtitles, showDefault, isNeedMove)\n }\n\n onFocus () {\n const { marginBottom, vBottom } = this.positionData\n if (this.isActive || !marginBottom) {\n return\n }\n this.isActive = true\n let bottom = marginBottom + vBottom\n if (this.followBottom > bottom) {\n bottom = this.followBottom\n }\n this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)\n }\n\n onBlur () {\n this.isActive = false\n const bottom = this.positionData.vBottom + this.positionData.marginBottom\n this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)\n }\n\n onSubtitleResize (data) {\n this.positionData.vBottom = data.vBottom\n this.positionData.marginBottom = data.marginBottom\n }\n\n destroy () {\n this.subtitle.off('resize', this.onSubtitleResize)\n this.player.off('focus', this.onFocus)\n this.player.off('blur', this.onBlur)\n this.subtitle.destroy()\n this.subtitle = null\n }\n}\n\nlet textTrack = function () {\n const player = this\n const { textTrack } = player.config\n if (!textTrack) {\n return\n }\n let textTrackStyle = player.config.textTrackStyle || {}\n Object.keys(defaultStyle).map(key => {\n if (textTrackStyle[key] === undefined) {\n textTrackStyle[key] = defaultStyle[key]\n }\n })\n player.textTrackShowDefault = false\n player.config.textTrack.map((item, index) => {\n if (!item.id && !item.language) {\n item.id = index\n }\n !item.url && (item.url = item.src)\n !item.language && (item.language = item.srclang)\n item.isDefault === undefined && (item.isDefault = item.default)\n !player.textTrackShowDefault && (player.textTrackShowDefault = item.isDefault || item.default)\n })\n\n this.subTitles = new XgSubtitles(player, player.config.textTrack, textTrackStyle)\n\n player.setSubTitles = (textTrack, needRemove = true) => {\n let showDefault = false\n textTrack.map((item, index) => {\n if (!item.id && !item.language) {\n item.id = index\n }\n !item.url && (item.url = item.src)\n !item.language && (item.language = item.srclang)\n item.isDefault === undefined && (item.isDefault = item.default)\n item.isDefault && (showDefault = true)\n })\n player.textTrackShowDefault = showDefault\n this.subTitles.setSubTitles(textTrack, showDefault, needRemove)\n player.emit('subtitle_change', {\n off: false,\n isListUpdate: true,\n list: textTrack\n })\n }\n\n player.switchSubTitle = (subtitle = { id: '', language: '' }) => {\n this.subTitles.switch(subtitle).then(data => {\n if (data.code === 0) {\n subtitle.off = false\n subtitle.isListUpdate = false\n subtitle.list = []\n player.emit('subtitle_change', subtitle)\n }\n })\n }\n\n player.switchOffSubtile = () => {\n this.subTitles.switchOff()\n player.emit('subtitle_change', {\n off: true,\n isListUpdate: false,\n list: []\n })\n }\n\n function onDestroy () {\n this.subTitles.destroy()\n this.subTitles = null\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'textTrack',\n method: textTrack\n}\n","import { createDom } from '../../utils/util'\nimport '../style/controls/enter.scss'\n\nlet s_enter = function () {\n let player = this\n let root = player.root\n\n let barStr = ''\n for(let i = 1; i <= 12; i++) {\n barStr += `<div class=\"xgplayer-enter-bar${i}\"></div>`\n }\n let enter = createDom('xg-enter', `<div class=\"xgplayer-enter-spinner\">\n ${barStr}\n </div>`, {}, 'xgplayer-enter');\n root.appendChild(enter)\n}\n\nexport default {\n name: 's_enter',\n method: s_enter\n}","import { createDom } from '../../utils/util'\nimport RequestCssFullIcon from '../assets/requestCssFull.svg'\nimport ExitCssFullIcon from '../assets/exitCssFull.svg'\nimport '../style/controls/cssfullscreen.scss'\n\nlet s_cssFullscreen = function () {\n let player = this\n if (!player.config.cssFullscreen) { return }\n let btn = createDom('xg-cssfullscreen', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-requestfull\">${RequestCssFullIcon}</div>\n <div class=\"xgplayer-icon-exitfull\">${ExitCssFullIcon}</div>\n </xg-icon>`, {}, 'xgplayer-cssfullscreen')\n\n let tipsText = {}\n tipsText.requestfull = player.lang.CSSFULLSCREEN_TIPS\n tipsText.exitfull = player.lang.EXITCSSFULLSCREEN_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-requestfull\">${tipsText.requestfull}</span>\n <span class=\"xgplayer-tip-exitfull\">${tipsText.exitfull}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('cssFullscreenBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_cssFullscreen',\n method: s_cssFullscreen\n}","import { createDom } from '../../utils/util'\nimport MutedIcon from '../assets/volumeMuted.svg'\nimport SmallIcon from '../assets/volumeSmall.svg'\nimport LargeIcon from '../assets/volumeLarge.svg'\nimport '../style/controls/volume.scss'\n\nlet s_volume = function () {\n let player = this\n let container = createDom('xg-volume', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-large\">${LargeIcon}</div>\n <div class=\"xgplayer-icon-small\">${SmallIcon}</div>\n <div class=\"xgplayer-icon-muted\">${MutedIcon}</div>\n </xg-icon>\n <xg-slider class=\"xgplayer-slider\" tabindex=\"2\">\n <xg-bar class=\"xgplayer-bar\">\n <xg-drag class=\"xgplayer-drag\"></xg-drag>\n </xg-bar>\n </xg-slider>`, {}, 'xgplayer-volume')\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(container)\n }\n })\n let slider = container.querySelector('.xgplayer-slider')\n let bar = container.querySelector('.xgplayer-bar')\n let selected = container.querySelector('.xgplayer-drag')\n let icon = container.querySelector('.xgplayer-icon')\n selected.style.height = `${player.config.volume * 100}%`\n slider.volume = player.config.volume;\n\n bar.addEventListener('mousedown', e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeBarClick', e)\n });\n\n ['click', 'touchend'].forEach(item => {\n icon.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconClick')\n })\n })\n\n icon.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconEnter')\n });\n\n ['blur', 'mouseleave'].forEach(item => {\n container.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconLeave')\n })\n })\n}\n\nexport default {\n name: 's_volume',\n method: s_volume\n}","import { createDom, addClass, removeClass, hasClass, toggleClass } from '../../utils/util'\nimport sniffer from '../../utils/sniffer'\nimport '../style/controls/definition.scss'\n\nlet s_definition = function () {\n let player = this\n let root = player.root\n let paused\n let container = createDom('xg-definition', '', {tabindex: 3}, 'xgplayer-definition')\n if (sniffer.device === 'mobile') {\n player.config.definitionActive = 'click'\n }\n\n function onCanplayResourceReady () {\n let list = player.definitionList\n let tmp = ['<ul>'], src = player.config.url, a = document.createElement('a')\n if (player.switchURL) {\n ['mp4', 'hls', '__flv__', 'dash'].every(item => {\n if (player[item]) {\n if(player[item].url) {\n a.href = player[item].url\n }\n if(item === '__flv__') {\n if(player[item]._options) {\n a.href = player[item]._options.url\n } else {\n a.href = player[item]._mediaDataSource.url\n }\n }\n if(item === 'hls') {\n a.href = player[item].originUrl || player[item].url\n src = a.href\n }\n src = a.href\n return false\n } else {\n return true\n }\n })\n } else {\n src = player.currentSrc || player.src\n }\n list.forEach(item => {\n a.href = item.url\n if (player.dash) {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${item.selected ? 'selected' : ''}'>${item.name}</li>`)\n } else {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${a.href === src ? 'selected' : ''}'>${item.name}</li>`)\n }\n })\n let cursrc = list.filter(item => {\n a.href = item.url\n if (player.dash) {\n return item.selected === true\n } else {\n return a.href === src\n }\n })\n tmp.push(`</ul><p class='name'>${(cursrc[0] || {name: ''}).name}</p>`)\n let urlInRoot = root.querySelector('.xgplayer-definition')\n if (urlInRoot) {\n urlInRoot.innerHTML = tmp.join('')\n let cur = urlInRoot.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-definition-active')\n urlInRoot.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-definition-active')\n container.focus()\n })\n }\n player.controls.appendChild(container)\n }\n }\n function onResourceReady (list) {\n player.definitionList = list\n if (list && list instanceof Array && list.length > 0) {\n addClass(root, 'xgplayer-is-definition')\n player.once('canplay', onCanplayResourceReady)\n }\n }\n player.on('resourceReady', onResourceReady)\n\n function onPlayingChangeDefinition () {\n player.currentTime = player.curTime\n if (paused) {\n player.pause()\n } else {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n };\n function onTimeupdateChangeDefinition () {\n player.once('timeupdate', onPlayingChangeDefinition)\n };\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let list = player.definitionList\n let li = e.target || e.srcElement, a = document.createElement('a')\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n let from, to\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if(hasClass(item, 'selected')) {\n from = item.getAttribute('cname')\n removeClass(item, 'selected')\n player.emit('beforeDefinitionChange', item.getAttribute('url'))\n }\n })\n if (player.dash) {\n list.forEach(item => {\n item.selected = false\n if (item.name === li.innerHTML) {\n item.selected = true\n }\n })\n }\n\n addClass(li, 'selected')\n to = li.getAttribute('cname')\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}`\n a.href = li.getAttribute('url')\n paused = player.paused\n if (player.switchURL) {\n let curRUL = document.createElement('a');\n ['mp4', 'hls', '__flv__', 'dash'].every(item => {\n if (player[item]) {\n if(player[item].url) {\n curRUL.href = player[item].url\n }\n if(item === '__flv__') {\n if(player[item]._options) {\n curRUL.href = player[item]._options.url\n } else {\n curRUL.href = player[item]._mediaDataSource.url\n }\n }\n if(item === 'hls') {\n curRUL.href = player[item].originUrl || player[item].url\n }\n return false\n } else {\n return true\n }\n })\n if (curRUL.href !== a.href && !player.ended) {\n player.switchURL(a.href)\n }\n } else {\n if (player['hls']) {\n let curRUL = document.createElement('a')\n curRUL = player['hls'].url\n }\n if (a.href !== player.currentSrc) {\n player.curTime = player.currentTime\n if (!player.ended) {\n player.src = a.href\n }\n }\n }\n if(navigator.userAgent.toLowerCase().indexOf('android') > -1) {\n player.once('timeupdate', onTimeupdateChangeDefinition)\n } else {\n player.once('loadedmetadata', onPlayingChangeDefinition)\n }\n player.emit('definitionChange', {from, to})\n if (sniffer.device === 'mobile') {\n removeClass(player.root, 'xgplayer-definition-active')\n }\n } else if (player.config.definitionActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n if(sniffer.device === 'mobile') {\n toggleClass(player.root, 'xgplayer-definition-active')\n } else {\n addClass(player.root, 'xgplayer-definition-active')\n }\n container.focus()\n }\n player.emit('focus')\n }, false)\n })\n\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(root, 'xgplayer-definition-active')\n })\n\n function onBlur () {\n removeClass(root, 'xgplayer-definition-active')\n }\n player.on('blur', onBlur)\n\n function onDestroy () {\n player.off('resourceReady', onResourceReady)\n player.off('canplay', onCanplayResourceReady)\n if(navigator.userAgent.toLowerCase().indexOf('android') > -1) {\n player.off('timeupdate', onTimeupdateChangeDefinition)\n player.off('timeupdate', onPlayingChangeDefinition)\n } else {\n player.off('loadedmetadata', onPlayingChangeDefinition)\n }\n player.off('blur', onBlur)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getCurrentDefinition = function () {\n let liList = player.controls.querySelectorAll('.xgplayer-definition ul li')\n for(let i = 0; i < liList.length; i++) {\n if(liList[i].className && liList[i].className.indexOf('selected') > -1) {\n return {\n name: liList[i].getAttribute('cname'),\n url: liList[i].getAttribute('url')\n }\n }\n }\n return {\n name: liList[0].getAttribute('cname'),\n url: liList[0].getAttribute('url')\n }\n }\n\n player.switchDefinition = function (definitionObj = {}) {\n let liList = player.controls.querySelectorAll('.xgplayer-definition ul li')\n for(let i = 0; i < liList.length; i++) {\n if(liList[i].getAttribute('cname') === definitionObj.name || liList[i].getAttribute('url') === definitionObj.url || i === definitionObj.index) {\n liList[i].click()\n }\n }\n }\n}\n\nexport default {\n name: 's_definition',\n method: s_definition\n}","import { createDom, addClass, removeClass, hasClass, toggleClass } from '../../utils/util'\nimport sniffer from '../../utils/sniffer'\nimport '../style/controls/playbackRate.scss'\n\nlet s_playbackRate = function () {\n let player = this\n let playbackRateList = []\n if (player.config.playbackRate) {\n playbackRateList = [].concat(player.config.playbackRate)\n playbackRateList.sort((a, b) => b - a)\n } else {\n return false\n }\n let unit = player.config.playbackRateUnit !== undefined ? player.config.playbackRateUnit : 'x'\n let container = createDom('xg-playbackrate', \" \", {}, 'xgplayer-playbackrate')\n if (sniffer.device === 'mobile') {\n player.config.playbackRateActive = 'click'\n }\n\n let list = []\n playbackRateList.forEach(item => {\n list.push({name: `${item}`, rate: `${item}${unit}`, selected: false})\n })\n let selectedSpeed = 1\n let tmp = ['<ul>']\n list.forEach(item => {\n if(player.config.defaultPlaybackRate && player.config.defaultPlaybackRate.toString() === item.name) {\n item.selected = true\n selectedSpeed = player.config.defaultPlaybackRate\n player.once('playing', () => { player.video.playbackRate = player.config.defaultPlaybackRate})\n } else if (item.name === '1.0' || item.name === '1') {\n if(!player.config.defaultPlaybackRate || player.config.defaultPlaybackRate === 1) {\n item.selected = true\n }\n }\n tmp.push(`<li cname='${item.name}' class='${item.selected ? 'selected' : ''}'>${item.rate}</li>`)\n })\n tmp.push(`</ul><p class='name'>${selectedSpeed}${unit}</p>`)\n let playbackDom = player.root.querySelector('.xgplayer-playbackrate')\n if (playbackDom) {\n playbackDom.innerHTML = tmp.join('')\n let cur = playbackDom.querySelector('.name')\n if (!player.config.playbackRateActive || player.config.playbackRateActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-playbackrate-active')\n playbackDom.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.playbackRateActive || player.config.playbackRateActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-playbackrate-active')\n container.focus()\n })\n }\n player.once('ready', () => {\n player.controls.appendChild(container)\n })\n }\n\n let ev = ['touchend', 'click']\n ev.forEach(item => {\n container.addEventListener(item, e => {\n e.stopPropagation()\n e.preventDefault()\n let li = e.target\n if(li && li.tagName.toLocaleLowerCase() === 'li') {\n let from, to\n list.forEach(item => {\n item.selected = false\n if (li.textContent.replace(/\\s+/g,\"\") === item.rate) {\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if(hasClass(item, 'selected')) {\n from = Number(item.getAttribute('cname'))\n removeClass(item, 'selected')\n }\n })\n item.selected = true\n player.video.playbackRate = item.name * 1\n selectedSpeed = item.name * 1\n }\n })\n addClass(li, 'selected')\n to = Number(li.getAttribute('cname'))\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}${unit}`\n player.emit('playbackrateChange', {from, to})\n if (sniffer.device === 'mobile') {\n removeClass(player.root, 'xgplayer-playbackrate-active')\n }\n } else if (player.config.playbackRateActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'span')) {\n if(sniffer.device === 'mobile') {\n toggleClass(player.root, 'xgplayer-playbackrate-active')\n } else {\n addClass(player.root, 'xgplayer-playbackrate-active')\n }\n container.focus()\n }\n player.emit('focus')\n }, false)\n })\n container.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(player.root, 'xgplayer-playbackrate-active')\n })\n\n function onBlur () {\n removeClass(player.root, 'xgplayer-playbackrate-active')\n }\n player.on('blur', onBlur)\n\n player.on('play', () => {\n if(player.video.playbackRate.toFixed(1) !== selectedSpeed.toFixed(1) ) {\n player.video.playbackRate = selectedSpeed\n }\n })\n\n player.switchPlaybackRate = function (playbackRateObj = {}) {\n let liList = player.controls.querySelectorAll('.xgplayer-playbackrate ul li')\n for(let i = 0; i < liList.length; i++) {\n if(!hasClass(liList[i], 'selected') && (liList[i].getAttribute('cname') === `${playbackRateObj.playbackRate}` || i === playbackRateObj.index)) {\n liList[i].click()\n }\n }\n }\n\n player.on('ratechange', () => {\n player.switchPlaybackRate({ playbackRate: player.playbackRate })\n })\n}\n\nexport default {\n name: 's_playbackRate',\n method: s_playbackRate\n}","import { createDom } from '../../utils/util'\n\nlet s_localPreview = function () {\n let player = this\n if (player.config.preview && player.config.preview.uploadEl) {\n let preview = createDom('xg-preview', '<input type=\"file\">', {}, 'xgplayer-preview')\n let upload = preview.querySelector('input')\n player.config.preview.uploadEl.appendChild(preview)\n upload.onchange = function () {\n player.emit('upload', upload)\n }\n }\n}\n\nexport default {\n name: 's_localPreview',\n method: s_localPreview\n}","import { createDom } from '../../utils/util'\nimport DownloadIcon from '../assets/download.svg'\nimport '../style/controls/download.scss'\n\nlet s_download = function () {\n let player = this\n if (!player.config.download) { return }\n let btn = createDom('xg-download', `<xg-icon class=\"xgplayer-icon\">${DownloadIcon}</xg-icon>`, {}, 'xgplayer-download')\n\n let tipsText = player.lang.DOWNLOAD_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-download\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('downloadBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_download',\n method: s_download\n}","import { createDom, deepCopy, addClass, removeClass } from '../../utils/util'\nimport DanmuJs from 'danmu.js'\nimport PanelIcon from '../assets/panel.svg'\nimport '../style/controls/danmu.scss'\n\nlet s_danmu = function () {\n let player = this\n let root = player.root\n if(!player.config.danmu) { return }\n let container = createDom('xg-danmu', '', {}, 'xgplayer-danmu')\n player.once('ready', () => {\n root.appendChild(container)\n })\n let config = deepCopy({\n container,\n player: player.video,\n comments: [],\n area: {\n start: 0,\n end: 1\n }\n }, player.config.danmu)\n let panelBtn\n if (player.config.danmu.panel) {\n panelBtn = createDom('xg-panel', `<xg-panel-icon class=\"xgplayer-panel-icon\">\n ${PanelIcon}\n </xg-panel-icon>\n <xg-panel-slider class=\"xgplayer-panel-slider\">\n <xg-hidemode class=\"xgplayer-hidemode\">\n <p class=\"xgplayer-hidemode-font\">屏蔽类型</p>\n <ul class=\"xgplayer-hidemode-radio\">\n <li class=\"xgplayer-hidemode-scroll\" id=\"false\">滚动</li><li class=\"xgplayer-hidemode-top\" id=\"false\">顶部</li><li class=\"xgplayer-hidemode-bottom\" id=\"false\">底部</li><li class=\"xgplayer-hidemode-color\" id=\"false\">色彩</li>\n </ul>\n </xg-hidemode>\n <xg-transparency class=\"xgplayer-transparency\">\n <span>不透明度</span>\n <input class=\"xgplayer-transparency-line xgplayer-transparency-color xgplayer-transparency-bar xgplayer-transparency-gradient\" type=\"range\" min=\"0\" max=\"100\" step=\"0.1\" value=\"50\"></input>\n </xg-transparency>\n <xg-showarea class=\"xgplayer-showarea\">\n <div class=\"xgplayer-showarea-name\">显示区域</div>\n <div class=\"xgplayer-showarea-control\">\n <div class=\"xgplayer-showarea-control-up\">\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-onequarters\">1/4</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-twoquarters selected-color\">1/2</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-threequarters\">3/4</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-full\">1</span>\n </div>\n <div class=\"xgplayer-showarea-control-down\">\n <div class=\"xgplayer-showarea-control-down-dots\">\n <span class=\"xgplayer-showarea-onequarters-dot\"></span>\n <span class=\"xgplayer-showarea-twoquarters-dot\"></span>\n <span class=\"xgplayer-showarea-threequarters-dot\"></span>\n <span class=\"xgplayer-showarea-full-dot\"></span>\n </div>\n <input class=\"xgplayer-showarea-line xgplayer-showarea-color xgplayer-showarea-bar xgplayer-gradient\" type=\"range\" min=\"1\" max=\"4\" step=\"1\" value=\"1\">\n </div>\n </div>\n </xg-showarea>\n <xg-danmuspeed class=\"xgplayer-danmuspeed\">\n <div class=\"xgplayer-danmuspeed-name\">弹幕速度</div>\n <div class=\"xgplayer-danmuspeed-control\">\n <div class=\"xgplayer-danmuspeed-control-up\">\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-small\">慢</span>\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-middle selected-color\">中</span>\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-large\">快</span>\n </div>\n <div class=\"xgplayer-danmuspeed-control-down\">\n <div class=\"xgplayer-danmuspeed-control-down-dots\">\n <span class=\"xgplayer-danmuspeed-small-dot\"></span>\n <span class=\"xgplayer-danmuspeed-middle-dot\"></span>\n <span class=\"xgplayer-danmuspeed-large-dot\"></span>\n </div>\n <input class=\"xgplayer-danmuspeed-line xgplayer-danmuspeed-color xgplayer-danmuspeed-bar xgplayer-gradient\" type=\"range\" min=\"50\" max=\"150\" step=\"50\" value=\"100\">\n </div>\n </div>\n </xg-danmuspeed>\n <xg-danmufont class=\"xgplayer-danmufont\">\n <div class=\"xgplayer-danmufont-name\">字体大小</div>\n <div class=\"xgplayer-danmufont-control\">\n <div class=\"xgplayer-danmufont-control-up\">\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-small\">小</span>\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-middle\">中</span>\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-large selected-color\">大</span>\n </div>\n <div class=\"xgplayer-danmufont-control-down\">\n <div class=\"xgplayer-danmufont-control-down-dots\">\n <span class=\"xgplayer-danmufont-small-dot\"></span>\n <span class=\"xgplayer-danmufont-middle-dot\"></span>\n <span class=\"xgplayer-danmufont-large-dot\"></span>\n </div>\n <input class=\"xgplayer-danmufont-line xgplayer-danmufont-color xgplayer-danmufont-bar xgplayer-gradient\" type=\"range\" min=\"20\" max=\"30\" step=\"5\" value=\"25\">\n </div>\n </div>\n </xg-danmufont>\n </xg-panel-slider>`, {tabindex: 7}, 'xgplayer-panel')\n player.once('ready', () => {\n player.controls.appendChild(panelBtn)\n })\n }\n player.once('complete', () => {\n let danmujs = new DanmuJs(config)\n player.emit('initDefaultDanmu', danmujs)\n player.danmu = danmujs\n\n if (!player.config.danmu.panel) {\n return\n }\n\n let slider = panelBtn.querySelector('.xgplayer-panel-slider')\n let focusStatus\n let focusarray = ['mouseenter', 'touchend', 'click']\n focusarray.forEach(item => {\n panelBtn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n addClass(slider, 'xgplayer-panel-active')\n panelBtn.focus()\n focusStatus = true\n })\n })\n panelBtn.addEventListener('mouseleave', function (e) {\n e.preventDefault()\n e.stopPropagation()\n removeClass(slider, 'xgplayer-panel-active')\n focusStatus = false\n })\n slider.addEventListener('mouseleave', function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (focusStatus === false) {\n removeClass(slider, 'xgplayer-panel-active')\n }\n })\n\n let danmuConfig = player.config.danmu\n let hidemodeScroll = panelBtn.querySelector('.xgplayer-hidemode-scroll')\n let hidemodeTop = panelBtn.querySelector('.xgplayer-hidemode-top')\n let hidemodeBottom = panelBtn.querySelector('.xgplayer-hidemode-bottom')\n let hidemodeColor = panelBtn.querySelector('.xgplayer-hidemode-color')\n let hidemodeArray = {\n 'scroll': hidemodeScroll,\n 'top': hidemodeTop,\n 'bottom': hidemodeBottom,\n 'color': hidemodeColor\n }\n for (let key in hidemodeArray) {\n let keys = key\n let ev = ['touchend', 'click']\n ev.forEach(item => {\n hidemodeArray[keys].addEventListener(item, function (e) {\n if (hidemodeArray[keys].getAttribute('id') !== 'true') {\n hidemodeArray[keys].style.color = '#f85959'\n hidemodeArray[keys].setAttribute('id', 'true')\n player.danmu.hide(keys)\n } else {\n hidemodeArray[keys].style.color = '#aaa'\n hidemodeArray[keys].setAttribute('id', 'false')\n player.danmu.show(keys)\n }\n })\n })\n }\n let transparency = panelBtn.querySelector('.xgplayer-transparency-line')\n let transparencyGradient = panelBtn.querySelector('.xgplayer-transparency-gradient')\n let transparencyValue = 50\n transparencyGradient.style.background = 'linear-gradient(to right, #f85959 0%, #f85959 ' + transparencyValue + '%, #aaa ' + transparencyValue + '%, #aaa)'\n transparency.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n transparencyValue = e.target.value\n transparencyGradient.style.background = 'linear-gradient(to right, #f85959 0%, #f85959 ' + transparencyValue + '%, #aaa ' + transparencyValue + '%, #aaa)'\n danmuConfig.comments.forEach(item => {\n item.style.opacity = transparencyValue / 100\n })\n })\n let showarea = panelBtn.querySelector('.xgplayer-showarea-line')\n showarea.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let showareaValue = e.target.value\n player.danmu.config.area.end = showareaValue / 100\n player.config.danmu.area.end = showareaValue / 100\n player.danmu.bulletBtn.main.channel.resize()\n })\n let danmuspeed = panelBtn.querySelector('.xgplayer-danmuspeed-line')\n danmuspeed.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let danmuspeedValue = e.target.value\n danmuConfig.comments.forEach(item => {\n item.duration = (200 - danmuspeedValue) * 100\n })\n })\n let danmufont = panelBtn.querySelector('.xgplayer-danmufont-line')\n danmufont.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let danmufontValue = e.target.value\n danmuConfig.comments.forEach(item => {\n item.style.fontSize = danmufontValue + 'px'\n })\n })\n if(navigator.userAgent.indexOf(\"Firefox\") > -1) {\n for (let i = 0; i < slider.querySelectorAll('input').length; i++) {\n slider.querySelectorAll('input')[i].style.marginTop = '10px'\n }\n }\n })\n}\n\nexport default {\n name: 's_danmu',\n method: s_danmu\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/pip.scss'\n\nlet s_pip = function () {\n let player = this\n if (!player.config.pip || typeof player.video.requestPictureInPicture !== 'function') { return }\n let pip = player.lang.PIP\n let btn = createDom('xg-pip', `<p class=\"name\"><span>${pip}</span></p>`, {tabindex: 9}, 'xgplayer-pip')\n\n player.once('ready', () => {\n player.controls.appendChild(btn);\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('pipBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_pip',\n method: s_pip\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/miniplayer.scss'\n\nlet s_miniplayer = function () {\n let player = this\n if (!player.config.miniplayer) { return }\n let miniplayer = player.lang.MINIPLAYER\n let btn = createDom('xg-miniplayer', `<p class=\"name\"><span>${miniplayer}</span></p>`, {tabindex: 9}, 'xgplayer-miniplayer')\n\n player.once('ready', () => {\n player.controls.appendChild(btn);\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('miniplayerBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_miniplayer',\n method: s_miniplayer\n}","import { createDom, addClass } from '../../utils/util'\nimport PlayNextIcon from '../assets/playNext.svg'\nimport '../style/controls/playNext.scss'\n\nlet s_playNext = function () {\n let player = this\n let nextBtn = player.config.playNext\n if (!nextBtn || !nextBtn.urlList) { return }\n let btn = createDom('xg-playnext', `<xg-icon class=\"xgplayer-icon\">${PlayNextIcon}</xg-icon>`, {}, 'xgplayer-playnext')\n let tipsText = player.lang.PLAYNEXT_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-playnext\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-is-enter')\n player.userGestureTrigEvent('playNextBtnClick')\n })\n })\n\n let onUrlListEnd = function () {\n addClass(player.root, 'xgplayer-playnext-inactive')\n }\n player.on('urlListEnd', onUrlListEnd)\n\n function onDestroy () {\n player.off('urlListEnd', onUrlListEnd)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_playNext',\n method: s_playNext\n}","import { createDom } from '../../utils/util'\nimport RotateIcon from '../assets/rotate.svg'\nimport '../style/controls/rotate.scss'\n\nlet s_rotate = function () {\n let player = this\n if (!player.config.rotate) { return }\n let btn = createDom('xg-rotate', `<xg-icon class=\"xgplayer-icon\">${RotateIcon}</xg-icon>`, {}, 'xgplayer-rotate')\n\n let tipsText = player.lang.ROTATE_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-rotate\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('rotateBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_rotate',\n method: s_rotate\n}","import { createDom } from '../../utils/util'\nimport ReloadIcon from '../assets/reload.svg'\nimport '../style/controls/reload.scss'\n\nlet s_reload = function () {\n let player = this\n if (!player.config.reload) { return }\n let btn = createDom('xg-reload', `<xg-icon class=\"xgplayer-icon\">${ReloadIcon}</xg-icon>`, {}, 'xgplayer-reload')\n\n let tipsText = player.lang.RELOAD_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-reload\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('reloadBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_reload',\n method: s_reload\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/screenShot.scss'\n\nlet s_screenShot = function () {\n let player = this\n if (!player.config.screenShot || player.config.screenShot.hideButton) {\n return\n }\n let screenShotText = player.lang.SCREENSHOT\n let btn = createDom('xg-screenshot', `<p class=\"name\"><span>${player.config.screenShot.iconText || screenShotText}</span></p>`, {tabindex: 11}, 'xgplayer-screenshot')\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('screenShotBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_screenShot',\n method: s_screenShot\n}","import Player from '../../player'\nimport '../style/controls/textTrack.scss'\n\nlet s_nativeTextTrack = function () {\n if (!this.config.nativeTextTrack) {\n return\n }\n let player = this\n let root = player.root\n let util = Player.util\n let container = util.createDom('xg-texttrack', '', {tabindex: 7}, 'xgplayer-texttrack')\n let list = player.config.nativeTextTrack\n if (list && Array.isArray(list) && list.length > 0) {\n util.addClass(player.root, 'xgplayer-is-texttrack')\n player.once('canplay', function () {\n let tmp = ['<ul>']\n tmp.push(`<li class='${this.textTrackShowDefault ? '' : 'selected'}'}'>${player.lang.OFF}</li>`)\n list.forEach(item => {\n tmp.push(`<li class='${item.default && this.textTrackShowDefault ? 'selected' : ''}'>${item.label}</li>`)\n })\n let controlText = player.lang.TEXTTRACK\n tmp.push(`</ul><p class=\"name\">${controlText}</p>`)\n\n let urlInRoot = root.querySelector('.xgplayer-texttrack')\n if (urlInRoot) {\n urlInRoot.innerHTML = tmp.join('')\n let cur = urlInRoot.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(root, 'xgplayer-texttrack-active')\n urlInRoot.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n })\n }\n player.controls.appendChild(container)\n }\n })\n };\n\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let li = e.target || e.srcElement\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n util.removeClass(item, 'selected')\n })\n util.addClass(li, 'selected')\n let trackDoms = player.root.getElementsByTagName('Track')\n if (li.innerHTML === player.lang.OFF) {\n trackDoms[0].track.mode = 'hidden'\n trackDoms[0].src = ''\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n trackDoms[0].style.display = 'block'\n util.addClass(player.root, 'xgplayer-texttrack-active')\n trackDoms[0].track.mode = 'showing'\n\n list.some(item => {\n if (item.label === li.innerHTML) {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n return true\n }\n })\n player.emit('textTrackChange', li.innerHTML)\n }\n } else if (player.config.textTrackActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n util.addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n }\n }, false)\n })\n\n player.on('play', () => {\n let ul = root.querySelector('.xgplayer-texttrack ul')\n let trackDoms = root.getElementsByTagName('Track')\n if (!player['hls'] || !ul || !trackDoms) return\n trackDoms[0].src = ''\n Array.prototype.forEach.call(ul.childNodes, li => {\n if (util.hasClass(li, 'selected')) {\n if (li.innerHTML === player.lang.OFF) {\n trackDoms[0].track.mode = 'hidden'\n trackDoms[0].src = ''\n } else {\n trackDoms[0].track.mode = 'hidden'\n\n list.some(item => {\n if (item.label !== li.innerHTML) {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n return true\n }\n })\n\n list.some(item => {\n if (item.label === li.innerHTML) {\n setTimeout(() => {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n trackDoms[0].track.mode = 'showing'\n })\n return true\n }\n })\n }\n }\n })\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n })\n\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n })\n}\n\nexport default {\n name: 's_nativeTextTrack',\n method: s_nativeTextTrack\n}\n","import { createDom, addClass, removeClass, hasClass } from '../../utils/util'\nimport '../style/controls/textTrack.scss'\n\nfunction renderList (root, textTrack, offText, isDefaultShow) {\n if (textTrack.length === 0) {\n root.innerHTML = ''\n return\n }\n let tmp = []\n tmp.push(`<li data-type=\"off\" class=\"${isDefaultShow ? '' : 'selected'}\">${offText}</li>`)\n textTrack.forEach(item => {\n tmp.push(`<li data-id=${item.id} data-language=${item.language} class=\"${item.isDefault && isDefaultShow ? 'selected' : ''}\">${item.label}</li>`)\n })\n root.innerHTML = tmp.join('')\n}\n\n// eslint-disable-next-line camelcase\nlet s_textTrack = function () {\n let player = this\n if (!this.config.textTrack) {\n return\n }\n let textTrack = this.config.textTrack\n let controlText = player.lang.TEXTTRACK\n const container = createDom('xg-texttrack', `<ul></ul><p class=\"name\">${controlText}</p>`, {tabindex: 7}, 'xgplayer-texttrack')\n\n function onCanPlay () {\n const urlInRoot = player.root.querySelector('.xgplayer-texttrack')\n if (!urlInRoot) {\n player.controls.appendChild(container)\n const cur = container.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n })\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(player.root, 'xgplayer-texttrack-active')\n })\n } else {\n cur.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n if (hasClass(player.root, 'xgplayer-texttrack-active')) {\n removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n addClass(player.root, 'xgplayer-texttrack-active')\n }\n })\n }\n }\n\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let li = e.target || e.srcElement\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n const id = li.getAttribute('data-id')\n const type = li.getAttribute('data-type')\n const language = li.getAttribute('data-language')\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n removeClass(item, 'selected')\n })\n addClass(li, 'selected')\n if (type === 'off') {\n player.switchOffSubtile()\n removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n player.switchSubTitle({id, language})\n addClass(player.root, 'xgplayer-texttrack-active')\n }\n }\n })\n })\n\n const ul = container.getElementsByTagName('ul')[0]\n renderList(ul, textTrack, player.lang.OFF, player.textTrackShowDefault)\n if (textTrack.length === 0) {\n addClass(container, 'xgplayer-texttrack-hide')\n } else {\n removeClass(container, 'xgplayer-texttrack-hide')\n }\n }\n\n const onListUpdate = function (data) {\n if (!data.isListUpdate) return\n const ul = container.getElementsByTagName('ul')[0]\n textTrack = data.list\n renderList(ul, data.list, player.lang.OFF, player.textTrackShowDefault)\n data.list.length > 0 ? addClass(player.root, 'xgplayer-is-texttrack') : removeClass(player.root, 'xgplayer-is-texttrack')\n if (data.list.length === 0) {\n addClass(container, 'xgplayer-texttrack-hide')\n } else {\n removeClass(container, 'xgplayer-texttrack-hide')\n }\n }\n\n if (textTrack && Array.isArray(textTrack)) {\n textTrack.length > 0 && addClass(player.root, 'xgplayer-is-texttrack')\n player.once('canplay', onCanPlay)\n player.on('subtitle_change', onListUpdate)\n }\n}\n\nexport default {\n name: 's_textTrack',\n method: s_textTrack\n}\n","import { addClass, removeClass, createDom } from '../../utils/util'\nimport '../style/controls/error.scss'\n\nlet s_error = function () {\n let player = this\n let root = player.root\n\n let error = createDom('xg-error', '<span class=\"xgplayer-error-text\">请<span class=\"xgplayer-error-refresh\">刷新</span>试试</span>', {}, 'xgplayer-error')\n player.once('ready', () => {\n root.appendChild(error)\n });\n\n let text = error.querySelector('.xgplayer-error-text')\n if (player.config.lang && player.config.lang === 'zh-cn') {\n text.innerHTML = player.config.errorTips || `请<span class=\"xgplayer-error-refresh\">刷新</span>试试`\n } else {\n text.innerHTML = player.config.errorTips || `please try to <span class=\"xgplayer-error-refresh\">refresh</span>`\n }\n let refresh = null\n\n function onError () {\n // player.controls.style.display = 'none'\n // if (player.error) {\n // text.innerHTML = player.error\n // } else {\n \n // }\n addClass(player.root, 'xgplayer-is-error')\n refresh = error.querySelector('.xgplayer-error-refresh')\n if (refresh) {\n ['touchend', 'click'].forEach(item => {\n refresh.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.autoplay = true\n let currentTime = player.currentTime\n player.once('playing', () => {\n player.currentTime = currentTime\n removeClass(player.root, 'xgplayer-is-error')\n })\n player.src = player.config.url\n })\n })\n }\n }\n player.on('error', onError)\n function onDestroy () {\n player.off('error', onError)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_error',\n method: s_error\n}","import { createDom, format } from '../../utils/util'\nimport '../style/controls/memoryPlay.scss'\n\nlet s_memoryPlay = function () {\n let player = this\n let lastPlayTime = player.config.lastPlayTime || 0\n let lastPlayTimeHideDelay = player.config.lastPlayTimeHideDelay || 0\n let dom = null\n if (lastPlayTime <= 0) {\n return\n }\n dom = createDom('xg-memoryplay', `<div class=\"xgplayer-memoryplay-spot\"><div class=\"xgplayer-progress-tip\">您上次观看到 <span class=\"xgplayer-lasttime\">${format(lastPlayTime)}</span> ,为您自动续播 <span class=\"btn-close\"><svg viewBox=\"64 64 896 896\" focusable=\"false\" class=\"\" data-icon=\"close\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\"></path></svg></span></div></div>`, {}, 'xgplayer-memoryplay');\n dom.addEventListener('mouseover', (e) => {\n e.stopPropagation();\n });\n const removeFunc = () => {\n dom && dom.parentNode && dom.parentNode.removeChild(dom)\n dom = null\n }\n dom.querySelector('.xgplayer-progress-tip .btn-close').addEventListener('click', removeFunc)\n const handlePlay = () => {\n if(lastPlayTimeHideDelay > 0) {\n player.root.appendChild(dom);\n }\n player.emit('memoryPlayStart', lastPlayTime);\n if (lastPlayTimeHideDelay > 0) {\n setTimeout(() => {\n removeFunc()\n }, lastPlayTimeHideDelay * 1000)\n }\n }\n player.once('play', handlePlay)\n player.once('ended', removeFunc)\n}\n\nexport default {\n name: 's_memoryPlay',\n method: s_memoryPlay\n}","import { createDom } from '../../utils/util'\nimport AirplayIcon from '../assets/airplay.svg'\nimport '../style/controls/airplay.scss'\n\nlet s_airplay = function () {\n let player = this\n if(!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent) return\n\n let btn = createDom('xg-airplay', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-airplay\">${AirplayIcon}</div>\n </xg-icon>`, {}, 'xgplayer-airplay')\n\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-airplay\">${player.lang.AIRPLAY_TIPS}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n player.video.addEventListener('webkitplaybacktargetavailabilitychanged',\n event => {\n switch (event.availability) {\n case \"available\":\n btn.hidden = false;\n btn.disabled = false;\n break;\n case \"not-available\":\n btn.hidden = true;\n btn.disabled = true;\n break;\n }\n });\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('airplayBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_airplay',\n method: s_airplay\n}","import Player from '../player'\n\nimport I18n from './controls/i18n.js'\nimport Enter from './controls/enter.js'\nimport Play from './controls/play.js'\nimport Start from './controls/start.js'\nimport Poster from './controls/poster.js'\nimport Flex from './controls/flex.js'\nimport Fullscreen from './controls/fullscreen.js'\nimport CssFullscreen from './controls/cssFullscreen.js'\nimport Volume from './controls/volume.js'\nimport Definition from './controls/definition.js'\nimport Loading from './controls/loading.js'\nimport Progress from './controls/progress.js'\nimport Time from './controls/time.js'\nimport Replay from './controls/replay.js'\nimport PlaybackRate from './controls/playbackRate.js'\nimport LocalPreview from './controls/localPreview.js'\nimport Download from './controls/download.js'\nimport Danmu from './controls/danmu.js'\nimport Pip from './controls/pip.js'\nimport Miniplayer from './controls/miniplayer.js'\nimport PlayNext from './controls/playNext.js'\nimport Rotate from './controls/rotate.js'\nimport Reload from './controls/reload.js'\nimport ScreenShot from './controls/screenShot.js'\nimport NativeTextTrack from './controls/nativeTextTrack.js'\nimport TextTrack from './controls/textTrack.js'\nimport ErrorControl from './controls/error.js'\nimport MemoryPlay from './controls/memoryPlay.js'\nimport Airplay from './controls/airplay.js'\n\nPlayer.installAll([\n I18n,\n Enter,\n Play,\n Start,\n Poster,\n Flex,\n Fullscreen,\n CssFullscreen,\n Volume,\n Definition,\n Loading,\n Progress,\n Time,\n Replay,\n PlaybackRate,\n LocalPreview,\n Download,\n Danmu,\n Pip,\n Miniplayer,\n PlayNext,\n Rotate,\n Reload,\n ScreenShot,\n NativeTextTrack,\n TextTrack,\n ErrorControl,\n MemoryPlay,\n Airplay\n])","import Player from './player'\n\nimport Airplay from './controls/airplay.js'\nimport CssFullscreen from './controls/cssFullscreen.js'\nimport Danmu from './controls/danmu.js'\nimport Definition from './controls/definition.js'\nimport Download from './controls/download.js'\nimport ErrorRetryControl from './controls/errorRetry.js'\nimport Fullscreen from './controls/fullscreen.js'\nimport Keyboard from './controls/keyboard.js'\nimport LocalPreview from './controls/localPreview.js'\nimport MemoryPlay from './controls/memoryPlay.js'\nimport Miniplayer from './controls/miniplayer.js'\nimport Mobile from './controls/mobile.js'\nimport Pc from './controls/pc.js'\nimport Pip from './controls/pip.js'\nimport Play from './controls/play.js'\nimport PlayNext from './controls/playNext.js'\nimport Reload from './controls/reload.js'\nimport Replay from './controls/replay.js'\nimport Rotate from './controls/rotate.js'\nimport ScreenShot from './controls/screenShot.js'\nimport StallCheck from './controls/stallCheck.js'\nimport Start from './controls/start.js'\nimport Volume from './controls/volume.js'\nimport TextTrack from './controls/textTrack.js'\n\nPlayer.installAll([\n Airplay,\n CssFullscreen,\n Danmu,\n Definition,\n Download,\n ErrorRetryControl,\n Fullscreen,\n Keyboard,\n LocalPreview,\n MemoryPlay,\n Miniplayer,\n Mobile,\n Pc,\n Pip,\n Play,\n PlayNext,\n Reload,\n Replay,\n Rotate,\n ScreenShot,\n StallCheck,\n Start,\n Volume,\n TextTrack \n])\n\nimport './skin/index.js';\n\nexport default Player\n"],"sourceRoot":""}
|