xgplayer 1.10.13 → 1.10.14
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/controls.js +2 -2
- package/browser/controls.js.map +1 -1
- package/browser/index.js +2 -2
- package/browser/index.js.map +1 -1
- package/browser/player.js +1 -1
- package/browser/simple_player.js +3 -3
- package/browser/simple_player.js.map +1 -1
- package/dist/controls.js +2 -2
- package/dist/controls.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/player.js +1 -1
- package/dist/simple_player.js +2 -2
- package/dist/simple_player.js.map +1 -1
- package/package.json +1 -1
package/browser/controls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://PlayerControls/webpack/bootstrap","webpack://PlayerControls/./src/player.js","webpack://PlayerControls/./node_modules/css-loader/lib/css-base.js","webpack://PlayerControls/./node_modules/style-loader/lib/addStyles.js","webpack://PlayerControls/./node_modules/es5-ext/object/is-value.js","webpack://PlayerControls/./src/utils/util.js","webpack://PlayerControls/./src/utils/svg.js","webpack://PlayerControls/./node_modules/type/value/is.js","webpack://PlayerControls/./src/utils/intervalTimer.js","webpack://PlayerControls/./src/utils/xgplayerTimeRange.js","webpack://PlayerControls/./src/error.js","webpack://PlayerControls/./src/utils/sniffer.js","webpack://PlayerControls/./src/controls.js","webpack://PlayerControls/./src/control/volume.js","webpack://PlayerControls/./src/proxy.js","webpack://PlayerControls/./node_modules/event-emitter/index.js","webpack://PlayerControls/./node_modules/d/index.js","webpack://PlayerControls/./node_modules/type/plain-function/is.js","webpack://PlayerControls/./node_modules/type/function/is.js","webpack://PlayerControls/./node_modules/type/prototype/is.js","webpack://PlayerControls/./node_modules/type/object/is.js","webpack://PlayerControls/./node_modules/es5-ext/object/assign/index.js","webpack://PlayerControls/./node_modules/es5-ext/object/assign/is-implemented.js","webpack://PlayerControls/./node_modules/es5-ext/object/assign/shim.js","webpack://PlayerControls/./node_modules/es5-ext/object/keys/index.js","webpack://PlayerControls/./node_modules/es5-ext/object/keys/is-implemented.js","webpack://PlayerControls/./node_modules/es5-ext/object/keys/shim.js","webpack://PlayerControls/./node_modules/es5-ext/function/noop.js","webpack://PlayerControls/./node_modules/es5-ext/object/valid-value.js","webpack://PlayerControls/./node_modules/es5-ext/object/normalize-options.js","webpack://PlayerControls/./node_modules/es5-ext/string/#/contains/index.js","webpack://PlayerControls/./node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://PlayerControls/./node_modules/es5-ext/string/#/contains/shim.js","webpack://PlayerControls/./node_modules/es5-ext/object/valid-callable.js","webpack://PlayerControls/./src/utils/database.js","webpack://PlayerControls/./node_modules/draggabilly/draggabilly.js","webpack://PlayerControls/./node_modules/get-size/get-size.js","webpack://PlayerControls/./node_modules/unidragger/unidragger.js","webpack://PlayerControls/./node_modules/unipointer/unipointer.js","webpack://PlayerControls/./node_modules/ev-emitter/ev-emitter.js","webpack://PlayerControls/./src/style/index.scss?6a19","webpack://PlayerControls/./src/style/index.scss","webpack://PlayerControls/./node_modules/style-loader/lib/urls.js","webpack://PlayerControls/./src/playerEvents.js","webpack://PlayerControls/./src/style/player/volume.scss?3a77","webpack://PlayerControls/./src/style/player/volume.scss","webpack://PlayerControls/./node_modules/pasition/dist/pasition.js","webpack://PlayerControls/./src/utils/animation.js","webpack://PlayerControls/./src/control/time.js","webpack://PlayerControls/./src/style/player/time.scss?339b","webpack://PlayerControls/./src/style/player/time.scss","webpack://PlayerControls/./src/control/textTrack.js","webpack://PlayerControls/./src/style/player/texttrack.scss?c249","webpack://PlayerControls/./src/style/player/texttrack.scss","webpack://PlayerControls/./src/control/screenShot.js","webpack://PlayerControls/./src/style/player/screenShot.scss?8d95","webpack://PlayerControls/./src/style/player/screenShot.scss","webpack://PlayerControls/./src/control/rotate.js","webpack://PlayerControls/./src/style/player/rotate.scss?05b8","webpack://PlayerControls/./src/style/player/rotate.scss","webpack://PlayerControls/./src/control/replay.js","webpack://PlayerControls/./src/style/player/replay.scss?3a19","webpack://PlayerControls/./src/style/player/replay.scss","webpack://PlayerControls/./src/control/progress.js","webpack://PlayerControls/./src/style/player/progress.scss?cede","webpack://PlayerControls/./src/style/player/progress.scss","webpack://PlayerControls/./src/control/poster.js","webpack://PlayerControls/./src/style/player/poster.scss?7f6c","webpack://PlayerControls/./src/style/player/poster.scss","webpack://PlayerControls/./src/control/playNext.js","webpack://PlayerControls/./src/style/player/playNext.scss?0e8c","webpack://PlayerControls/./src/style/player/playNext.scss","webpack://PlayerControls/./src/control/playbackRate.js","webpack://PlayerControls/./src/style/player/playback.scss?68a8","webpack://PlayerControls/./src/style/player/playback.scss","webpack://PlayerControls/./src/control/play.js","webpack://PlayerControls/./src/style/player/play.scss?3cfe","webpack://PlayerControls/./src/style/player/play.scss","webpack://PlayerControls/./src/control/pip.js","webpack://PlayerControls/./src/style/player/pip.scss?eb07","webpack://PlayerControls/./src/style/player/pip.scss","webpack://PlayerControls/./src/control/pc.js","webpack://PlayerControls/./src/control/mobile.js","webpack://PlayerControls/./src/style/player/mobile.scss?3ce7","webpack://PlayerControls/./src/style/player/mobile.scss","webpack://PlayerControls/./src/control/localPreview.js","webpack://PlayerControls/./src/control/loading.js","webpack://PlayerControls/./src/style/player/loading.scss?8aa9","webpack://PlayerControls/./src/style/player/loading.scss","webpack://PlayerControls/./src/control/keyboard.js","webpack://PlayerControls/./src/control/i18n.js","webpack://PlayerControls/./src/control/fullscreen.js","webpack://PlayerControls/./src/style/player/fullscreen.scss?2315","webpack://PlayerControls/./src/style/player/fullscreen.scss","webpack://PlayerControls/./src/control/flex.js","webpack://PlayerControls/./src/control/error.js","webpack://PlayerControls/./src/style/player/error.scss?b84b","webpack://PlayerControls/./src/style/player/error.scss","webpack://PlayerControls/./src/control/download.js","webpack://PlayerControls/./src/utils/url.js","webpack://PlayerControls/./node_modules/downloadjs/download.js","webpack://PlayerControls/./src/style/player/download.scss?e7b4","webpack://PlayerControls/./src/style/player/download.scss","webpack://PlayerControls/./src/control/definition.js","webpack://PlayerControls/./src/style/player/definition.scss?f0d7","webpack://PlayerControls/./src/style/player/definition.scss","webpack://PlayerControls/./src/control/danmu.js","webpack://PlayerControls/./node_modules/danmu.js/dist/index.js","webpack://PlayerControls/(webpack)/buildin/module.js","webpack://PlayerControls/./src/style/player/bullet.scss?31db","webpack://PlayerControls/./src/style/player/bullet.scss","webpack://PlayerControls/./src/control/cssFullscreen.js","webpack://PlayerControls/./src/style/player/cssFullscreen.scss?12da","webpack://PlayerControls/./src/style/player/cssFullscreen.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","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","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","Player","options","self","config","util","deepCopy","width","height","ignores","whitelist","lang","document","documentElement","getAttribute","navigator","language","toLocaleLowerCase","inactive","volume","controls","controlsList","version","userTimer","waitTimer","database","Database","history","isProgressMoving","root","findDom","id","createDom","unselectable","onselectstart","el","nodeType","emit","Errors","vid","line","handle","msg","addClass","sniffer","device","appendChild","fluid","style","video","execBeforePluginsCall","forEach","item","controlStyle","typeOf","window","fetch","method","headers","Accept","then","res","ok","json","obj","prop","pluginsCall","catch","err","console","log","controlPlugins","controlsRun","ev","evName","keys","evFunc","on","charAt","toUpperCase","slice","player","mousemoveFunc","closeFocusVideoFocus","focus","addEventListener","playFunc","closePlayVideoFocus","once","setTimeout","videoInit","hasClass","start","removeEventListener","Proxy","isSupportMP4","url","this","canPlayFunc","playPromise","play","undefined","removeClass","e","setMediaSrc","indexOf","src","length","type","autoplay","load","querySelector","insertBefore","firstChild","beforeStartRun","time","ended","replay","currentTime","reloadFunc","isDelDom","k","clearInterval","bulletResizeTimer","_interval","destroyFunc","removeAttribute","innerHTML","className","off","danmu","destroy","clearTimeout","sliderTimer","paused","pause","_replay","Function","plugins","descriptor","some","ro","getBoundingClientRect","Top","top","Left","left","dragLay","dragHandle","tabindex","Draggabilly","right","bottom","preventDefault","stopPropagation","exitPIP","isLoading","isSeeking","checkBuffer","_handleResumeFromWating","clearWaitTimer","_hasStart","onWaiting","PLAYER_EVENTS","PLAYER_WAITING","PLAYER_RESUME","buffered","len","end","controlLst","context","control","IntervalTimer","XgplayerTimeRange","useSourceMap","list","toString","map","content","cssWithMappingToString","cssMapping","btoa","sourceMapping","toComment","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","join","mediaQuery","alreadyImportedModules","push","stylesInDom","isOldIE","fn","memo","apply","arguments","memoize","all","atob","getElement","target","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","j","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","before","removeStyleElement","idx","parentNode","removeChild","splice","createStyleElement","createElement","attrs","addAttrs","setAttribute","result","styleIndex","update","remove","transform","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","createLinkElement","link","rel","updateLink","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","href","applyToTag","styleSheet","cssText","createTextNode","updateStyle","newObj","DEBUG","newList","mayRemove","replaceText","textStore","index","replacement","filter","Boolean","cssNode","childNodes","_undefined","require","val","tpl","cname","dom","classList","Array","match","RegExp","replace","split","add","reg","sel","startsWith","getElementById","str","pad","charstr","String","maxlen","Math","ceil","chars","substring","isNaN","hour","padStart","floor","minute","second","touch","touches","changedTouches","clientX","clientY","offsetX","pageX","offsetLeft","offsetY","pageY","offsetTop","_target","srcElement","dst","Node","currentStyle","getComputedStyle","backgroundImage","a","back","tagName","attributes","node","eventName","intervalFunc","frequency","setInterval","imgUrl","w","h","unit","btn","every","parseFloat","trim","backgroundSize","margin","hex","alpha","rgb","sixHex","test","kw","eval","ua","userAgent","toLowerCase","browser","exec","appVersion","isChrome","isTrident","isSupport","mime","canPlayType","webkitDecodedFrameCount","webkitDroppedFrameCount","frameRateInterval","currentFrameRate","currentDecodedFrameCount","frameRateTimer","clear","repeat","currentDroppedFrameCount","event","offEvent","onDestroy","offInDestroy","_fn","data","vbuffered","maxHoleDuration","sort","b","diff","buffered_2","buf2end","buf2len","SVG","from","to","easing","duration","curPath","progress","state","beginTime","Date","outShape","pathA","path2shapes","pathB","pathArr","_preprocessing","tick","dt","cancelAnimationFrame","tickId","percent","_lerp","requestAnimationFrame","shapes","shape","point","unshift","animate","stop","tmp","pasition","timeID","func","ms","bufferedList","ErrorTypes","network","code","remark","mse","parse","format","decoder","runtime","timeout","other","networkState","readyState","currentSrc","errd","playerVersion","errorType","ex","domain","os","isPc","ie","firfox","chrome","opera","safari","isWindowsPhone","isSymbian","isAndroid","isFireFox","isTablet","isPhone","Controls","scale","autoplayMuted","canplayVolFunc","iconPath","v2s","curIocnPath","defaultPath","container","containerHeight","slider","bar","selected","icon","path","svg","_changeTimer","volumePath","pathVolume","svgVolume","muted","small","large","vol","querySelectorAll","_p","toSVGString","barRect","pos","isMove","onMove","now","max","min","onUp","volumechangeFunc","reset","_seekingTimer","videoConfig","playsinline","airplay","mediaType","loop","crossorigin","textTrackDom","textTrack","isArray","track","label","default","kind","srclang","textTrackStyle","styleStr","wrap","sheet","insertRule","addRule","XgVideoProxy","constructor","lastBuffer","evItem","hasStart","inWaitingStart","getTime","_onError","curBuffer","error","message","errorCode","range","bool","isTrue","getBuffered2","crossOrigin","isFinite","defaultMuted","status","en","cn","playbackRate","rate","played","preload","seekable","seeking","location","callable","defineProperties","configurable","writable","listener","__ee__","__eeOnceListener__","listeners","candidate","args","methods","descriptors","isValue","isPlainFunction","assign","normalizeOpts","contains","dscr","desc","gs","set","isFunction","classRe","functionToString","isPrototype","isObject","possibleTypes","foo","trzy","dest","TypeError","opts1","process","searchString","INDEXDB","mydb","db","ojstore","keypath","indexedDB","webkitindexedDB","IDBKeyRange","webkitIDBKeyRange","myDB","callback","request","open","onerror","onsuccess","onupgradeneeded","transaction","objectStoreNames","createObjectStore","keyPath","deleteDatabase","close","storename","store","objectStore","put","delete","define","getSize","Unidragger","factory","extend","noop","jQuery","element","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","applyGrid","grid","position","_getPosition","startPoint","x","y","dragPoint","startPosition","onPointerMove","onPointerUp","enable","setHandles","handles","bindHandles","dispatchEvent","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","Event","trigger","_getPositionCoord","_addTransformPosition","styleSide","measure","parentSize","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","pointerDown","isOkay","okayPointerDown","isEnabled","_pointerReset","pointerDownPointer","pointerDownBlur","_bindPostStartEvents","dragStart","measureContainment","setLeftTop","getContainer","elemSize","containerSize","elemRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","isElement","HTMLElement","moveVector","dragMove","dragX","dragY","gridX","gridY","containDrag","axis","drag","dragEnd","isDragging","positionDrag","_this","animateFrame","staticClick","setPosition","disable","unbindHandles","removeData","_init","bridget","getStyleSize","num","isValid","logError","measurements","measurementsLength","getZeroSize","size","innerWidth","innerHeight","outerWidth","outerHeight","measurement","getStyle","elem","isSetup","isBoxSizeOuter","setup","div","padding","borderStyle","borderWidth","boxSizing","body","round","display","offsetWidth","offsetHeight","isBorderBox","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","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","focused","activeElement","blur","pointerMove","_dragPointerMove","_dragMove","hasDragStarted","_dragStart","abs","pointerUp","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","onclick","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","_events","onceEvents","_onceEvents","onceListeners","allOff","locals","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","mapToEllipse","_ref","rx","ry","cosphi","sinphi","centerx","centery","vectorAngle","ux","uy","vx","vy","sign","sqrt","acos","arcToBezier","_ref2","px","py","cx","cy","_ref2$xAxisRotation","xAxisRotation","_ref2$largeArcFlag","largeArcFlag","_ref2$sweepFlag","sweepFlag","curves","sin","TAU","cos","pxp","pyp","lambda","pow","_getArcCenter","getArcCenter","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","ang1","ang2","_getArcCenter2","slicedToArray","segments","approxUnitArc","tan","x1","y1","x2","y2","curve","_mapToEllipse","_mapToEllipse2","_mapToEllipse3","arr","iterator","sliceIterator","_arr","_n","_d","_e","_s","_i","next","done","PI","q","v","z","segment","number","shapeBox","minX","minY","maxX","maxY","x3","x4","y3","y4","sortCurves","curvesA","curvesB","arrList","permuteCurveNum","indexArr","distance","curveDistance","curveA","curveB","xb1","xb2","xb3","xb4","yb1","yb2","yb3","yb4","permuteNum","permute","input","permArr","usedChars","main","ch","pop","boxDistance","boxA","boxB","_split","reverse","x12","y12","x23","y23","x123","y123","x1234","y1234","sync","count","_loop","newShape","parser","_","command","parseValues","numbers","Number","lerpCurve","lerpPoints","q2b","cmds","preX","preY","current","closeX","closeY","preCX","preCY","sLen","lastCurve","action","preItem","_upCurves","_splitCurves","cs","lerp","MIM_CURVES_COUNT","lenA","lenB","clonePathA","clonePathB","newCurves","curveIndex","begin","lastTime","vendors","currTime","timeToCall","curtime","dash","endedShow","ul","textTrackActive","onCanplay","controlText","cur","urlInRoot","onEnded","trackDoms","getElementsByTagName","onPlaying","li","toggleClass","onBlur","screenShot","canvas","canvasCtx","img","getContext","Image","onload","drawImage","toDataURL","saveScreenShot","filename","saveLink","download","createEvent","initMouseEvent","rotate","tipsRotate","tips","rotateDeg","times","innerRotate","factor","clockwise","toFixed","transformOrigin","webKitTransform","rect","rootRect","centerBtn","replayPath","endedFunc","textContent","REPLAY","getPropertyValue","isRotateFullscreen","containerWidth","outer","cache","thumbnail","dotEvent","dotItem","text","dotArr","canplayProgFunc","progressDot","dot","addProgressDot","removeProgressDot","removeAllProgressDot","interval","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","tnailUrls","tnailScale","pic_num","col","row","urls","allowSeekAfterEnded","isRotate","move","btnWidth","closeMoveSeek","up","passive","seekEndPlay","compute","containerLeft","indexInPage","tnaiRowIndex","tnaiColIndex","pointWidth","leave","lastBtnLeft","handleTimeUpdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","handleCacheUpdate","poster","hiddenPoster","playNext","controlEl","nextBtn","playNextBtn","urlList","createImgBtn","playbackRateActive","defaultPlaybackRate","selectedSpeed","playbackDom","onPlay","iconScale","playBtn","tipsPlay","tipsPause","enableEndedPlay","pauseFunc","pip","getPIP","pc","clk","_click_","pausePath","playPath","enter","logo","enterTips","enterLogo","onCanPlay","startAniEnd","mouseenterFunc","leavePlayerTimer","mouseleaveFunc","closePlayerBlur","leavePlayerTime","background","enterBg","color","startClc","mediaSource","onPlayBtnClick","onElementClick","closeVideoClick","onElementDblclick","fullscreen","closeVideoDblclick","initEvent","cmouseenterFunc","cmouseleaveFunc","closeControlsBlur","readyFunc","mobile","pass","whitelistPass","mobilePass","closeVideoTouch","isTouchMove","debug","port","script","h4","anonymous","async","localPreview","preview","upload","uploadEl","onchange","uploadFile","files","loading","Keyboard","isRepeat","keyCode","isBody","timer","initEvents","onBodyKeydown","onKeydown","onKeyup","keyShortcut","cancelBubble","returnValue","handler","checkTarget","handlerKeyCode","changeVolumeSlide","disableLongPress","isLonePress","changeRate","seek","changeVolume","startTimeCache","isBack","isLongPress","keyboardRate","show","isup","keyboard","i18n","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","ERROR","active","tipsFull","tipsExitFull","cssfullscreenDom","cssfullscreentTip","cssPath","fullscreenEl","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","webkitIsFullScreen","mozFullScreen","rotateFullscreen","exitRotateFullscreen","getRotateFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","getFullscreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","webkitSupportsFullscreen","webkitEnterFullscreen","msRequestFullscreen","flex","playceholder","refresh","errorFunc","reload","downloadEl","tipsDownload","getAbsoluteURL","strFileName","strMimeType","defaultMime","mimeType","payload","anchor","myBlob","MozBlob","WebKitBlob","fileName","reader","ajax","XMLHttpRequest","responseType","response","send","dataUrlToBlob","msSaveBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","decodeURIComponent","binData","uiArr","winMode","click","confirm","f","FileReader","readAsDataURL","definition","canplayDefiFunc","definitionList","switchURL","_options","_mediaDataSource","originUrl","cursrc","definitionActive","resourceReadyFunc","curRUL","curTime","comments","area","onComplete","onPause","onSeeked","danmujs","DanmuJs","closeDefaultBtn","bulletBtn","copyDom","createSwitch","formatTime","setProperty","logger","u","ReferenceError","__proto__","getPrototypeOf","setLogger","info","overlap","live","direction","needResizeObserver","hideArr","domObj","containerStyle","isReady","addResizeObserver","setPrototypeOf","addObserver","resize","unObserver","txt","opacity","fontSize","like","prior","realTime","readData","dataHandle","queue","pauseMove","startMove","setLikeDom","mouseControl","forceDuration","setFontSize","channel_id","topInit","channelSize","channel","g","function","constructorName","defaultOff","switchBtn","playedData","retryTimer","retryStatus","updateQueue","nums","dataHandleTimer","bullet","hasAttached","resetWithCb","init","channels","resized","containerPos","detach","noDiscard","attach","addBullet","removeBullet","containerRight","resizing","resizeTimer","bookChannelId","scroll","operating","bookId","channelWidth","channelHeight","bOffset","O","M","C","E","B","T","P","S","L","D","R","resetTimer","moveV","reuseDOM","onChangeDirection","disableCopyDOM","use","eventListeners","useCapture","random","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","__handlers","ResizeObserver","observer","timeStampe","__trigger","observe","unobserve","disconnect","__runHandler","destroyObserver","hmr","webpackPolyfill","deprecate","paths","children","cssFullscreen"],"mappings":"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","file":"controls.js","sourcesContent":[" \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 = 12);\n","import Proxy from './proxy'\nimport util from './utils/util'\nimport Database from './utils/database'\nimport sniffer from './utils/sniffer'\nimport XgplayerTimeRange from './utils/xgplayerTimeRange'\nimport IntervalTimer from './utils/intervalTimer'\nimport Errors from './error'\nimport Draggabilly from 'draggabilly'\nimport './style/index.scss'\nimport {\n version\n} from '../package.json'\nimport {PLAYER_EVENTS} from './playerEvents'\nclass Player extends Proxy {\n static isSupportMP4 () {\n return util.isSupportMP4()\n }\n constructor (options) {\n super(options)\n this.config = util.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.database = new Database()\n this.history = []\n this.isProgressMoving = false\n this.root = util.findDom(document, `#${this.config.id}`)\n this.controls = util.createDom('xg-controls', '', {\n unselectable: 'on',\n onselectstart: 'return false'\n }, 'xgplayer-controls')\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('use', this.config.vid, {\n line: 32,\n handle: 'Constructor',\n msg: 'container id can\\'t be empty'\n }))\n return false\n }\n }\n // this.rootBackup = util.copyDom(this.root)\n util.addClass(this.root, `xgplayer xgplayer-${sniffer.device} xgplayer-nostart ${this.config.controls ? '' : '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 if (sniffer.device === 'pc' || options.width || options.height) {\n this.root.style.width = `${this.config.width}px`\n this.root.style.height = `${this.config.height}px`\n }\n }\n if (this.config.execBeforePluginsCall) {\n this.config.execBeforePluginsCall.forEach(item => {\n item.call(this, this)\n })\n }\n if (this.config.controlStyle && util.typeOf(this.config.controlStyle) === 'String') {\n let self = this\n window.fetch && window.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 util.on(this, evName, evFunc, 'destroy')\n }\n });\n ['focus', 'blur'].forEach(item => {\n util.on(this, item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)], 'destroy')\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 util.once(player, 'play', this.playFunc)\n\n setTimeout(() => {\n this.emit('ready')\n }, 0)\n if (this.config.videoInit) {\n if (util.hasClass(this.root, 'xgplayer-nostart')) {\n this.start()\n }\n }\n\n util.once(player, 'destroy', () => {\n player.root.removeEventListener('mousemove', player.mousemoveFunc)\n })\n }\n\n start (url = this.config.url) {\n let root = this.root\n let player = this\n if (!url) {\n this.emit('urlNull')\n }\n this.canPlayFunc = () => {\n let playPromise = player.video.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.then(function () {\n util.removeClass(player.root, 'xgplayer-nostart')\n player.emit('autoplay started')\n }).catch(function (e) {\n if (e.name === 'NotAllowedError') {\n player.emit('autoplay was prevented')\n Player.util.addClass(player.root, 'xgplayer-is-autoplay')\n } \n })\n }\n }\n const setMediaSrc = url => {\n if (util.typeOf(url) !== 'Array') {\n if (util.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 if(url && url.length > 0) {\n url.forEach(item => {\n this.video.appendChild(util.createDom('source', '', {\n src: `${item.src}`,\n type: `${item.type || ''}`\n }))\n })\n }\n if (this.config.autoplay) {\n util.on(this, 'canplay', this.canPlayFunc)\n }\n this.video.load()\n if(root && !root.querySelector('video') && this.video && this.video.nodeType === 1) {\n root.insertBefore(this.video, root.firstChild)\n }\n setTimeout(() => {\n this.emit('complete')\n }, 1)\n }\n if(typeof player.config.beforeStartRun === 'function') {\n player.config.beforeStartRun().then(() => {\n setMediaSrc(url)\n })\n } else {\n setMediaSrc(url)\n }\n }\n\n seek (time) {\n if(this.ended && typeof this.replay === 'function') {\n this.replay(time)\n } else {\n this.currentTime = time\n }\n }\n\n reload () {\n this.video.load()\n this.reloadFunc = () => {\n this.play().catch(err => {})\n }\n util.once(this, 'loadeddata', this.reloadFunc)\n }\n\n destroy (isDelDom = true) {\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.danmu) {\n this.danmu.destroy()\n }\n clearTimeout(this.userTimer)\n clearTimeout(this.waitTimer)\n clearTimeout(this.sliderTimer)\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 this.root.className = ''\n }\n for (let k in this) {\n // if (k !== 'config') {\n delete this[k]\n // }\n }\n this.off('pause', destroyFunc)\n this.emit('destroyEnd')\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 (currentTime = 0) {\n let self = this\n let _replay = this._replay\n // ie9 bugfix\n util.removeClass(this.root, 'xgplayer-ended')\n if (_replay && _replay instanceof Function) {\n _replay(currentTime)\n } else {\n this.currentTime = currentTime\n this.play().catch(err => {})\n }\n }\n\n pluginsCall () {\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 (!ignores.some(item => name === item)) {\n if (['pc', 'tablet', 'mobile'].some(type => type === name)) {\n if (name === sniffer.device) {\n setTimeout(() => {\n descriptor.call(self, self)\n }, 0)\n }\n } else {\n descriptor.call(this, this)\n }\n }\n })\n }\n }\n\n getPIP (width = 320, height = 180) {\n let ro = this.root.getBoundingClientRect()\n let Top = ro.top\n let Left = ro.left\n let dragLay = util.createDom('xg-pip-lay', '<div></div>', {}, 'xgplayer-pip-lay')\n this.root.appendChild(dragLay)\n let dragHandle = util.createDom('xg-pip-drag', '<div class=\"drag-handle\"><span>点击按住可拖动视频</span></div>', {tabindex: 9}, 'xgplayer-pip-drag')\n this.root.appendChild(dragHandle)\n let draggie = new Draggabilly('.xgplayer', {\n handle: '.drag-handle'\n })\n util.addClass(this.root, 'xgplayer-pip-active')\n\n this.root.style.width = `${width}px`\n this.root.style.height = `${height}px`\n\n this.root.style.right = 0\n this.root.style.bottom = '200px'\n this.root.style.top = ''\n this.root.style.left = ''\n if (this.config.fluid) {\n this.root.style['padding-top'] = ''\n }\n let player = this;\n ['click', 'touchstart'].forEach(item => {\n dragLay.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.exitPIP()\n player.root.style.top = `${Top}px`\n player.root.style.left = `${Left}px`\n })\n })\n }\n\n exitPIP () {\n util.removeClass(this.root, 'xgplayer-pip-active')\n this.root.style.right = ''\n this.root.style.bottom = ''\n this.root.style.top = ''\n this.root.style.left = ''\n\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\n clearWaitTimer () {\n if (!this.waitTimer) {\n return\n }\n window.clearTimeout(this.waitTimer)\n this.waitTimer = null\n }\n\n onFocus () {\n let player = this\n if(util.hasClass(this.root, 'xgplayer-inactive')) {\n player.emit('controlShow')\n }\n util.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.paused && !this.ended) {\n if(!util.hasClass(this.root, 'xgplayer-inactive')) {\n this.emit('controlHide')\n }\n util.addClass(this.root, 'xgplayer-inactive')\n }\n }\n\n onPlay () {\n util.addClass(this.root, 'xgplayer-playing')\n util.removeClass(this.root, 'xgplayer-pause')\n }\n\n onPause () {\n util.addClass(this.root, 'xgplayer-pause')\n if (this.userTimer) {\n clearTimeout(this.userTimer)\n }\n this.emit('focus')\n }\n\n onEnded () {\n util.addClass(this.root, 'xgplayer-ended')\n util.removeClass(this.root, 'xgplayer-playing')\n util.removeClass(this.root, 'xgplayer-isloading')\n }\n\n onTimeupdate () {\n // loading状态下必须有足够的播放buffer才清楚loading\n if (this.isLoading || (this.waitTimer && !this.isSeeking)) {\n if (this.checkBuffer()) {\n this._handleResumeFromWating();\n this.clearWaitTimer()\n util.removeClass(this.root, 'xgplayer-isloading')\n this.isLoading = false\n }\n }\n // 在没有开始播放且当前是暂停状态 不去除xgplayer-nostart, 兼容safari下无法自动播放但是设置了currentTime的情况\n if (!this._hasStart && this.paused) {\n util.removeClass(this.root, 'xgplayer-is-enter xgplayer-start-appear')\n } else {\n util.removeClass(this.root, 'xgplayer-is-enter xgplayer-nostart xgplayer-start-appear')\n }\n }\n\n onSeeking () {\n this.isSeeking = true\n this.onWaiting()\n }\n\n onSeeked () {\n this._handleResumeFromWating()\n this.isSeeking = false\n this.isLoading = false\n // for ie,playing trigger before waiting\n if (this.waitTimer) {\n this.clearWaitTimer()\n }\n util.removeClass(this.root, 'xgplayer-isloading')\n }\n\n onWaiting () {\n // 未开始播放且暂停状态不显示loading\n if (!this._hasStart && this.paused) {\n return\n }\n let self = this\n if (self.waitTimer) {\n this.clearWaitTimer()\n this.isLoading = false\n }\n self.waitTimer = setTimeout(function () {\n util.addClass(self.root, 'xgplayer-isloading')\n self.emit(PLAYER_EVENTS.PLAYER_WAITING)\n self.isLoading = true\n self.clearWaitTimer()\n }, 800)\n }\n\n _handleResumeFromWating(){\n if(this.isLoading){\n this.emit(PLAYER_EVENTS.PLAYER_RESUME)\n }\n }\n\n onPlaying () {\n this._handleResumeFromWating()\n this.isSeeking = false\n this.isLoading = false\n if (this.waitTimer) {\n this.clearWaitTimer()\n }\n util.removeClass(this.root, 'xgplayer-isloading xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay')\n util.addClass(this.root, 'xgplayer-playing')\n }\n\n /**\n * 检查当前缓存是否足够播放currenTime\n */\n checkBuffer () {\n const buffered = this.video.buffered\n const currentTime = this.currentTime\n const len = buffered.length\n for (let i = 0; i < len; i++) {\n if (buffered.start(i) <= currentTime && buffered.end(i) > currentTime) {\n return true\n }\n }\n return false\n }\n\n static install (name, descriptor) {\n if (!Player.plugins) {\n Player.plugins = {}\n }\n Player.plugins[name] = descriptor\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.IntervalTimer = IntervalTimer\nPlayer.sniffer = sniffer\nPlayer.Errors = Errors\nPlayer.PLAYER_EVENTS = PLAYER_EVENTS\nPlayer.XgplayerTimeRange = XgplayerTimeRange\nexport default Player\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","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","import IntervalTimer from './intervalTimer'\nimport XgplayerTimeRange from './xgplayerTimeRange'\n\nlet util = {}\n\nutil.createDom = function (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\nutil.hasClass = function (el, className) {\n if (!el) return null\n if (el.classList) {\n return Array.prototype.some.call(el.classList, item => item === className)\n } else {\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'))\n }\n}\n\nutil.addClass = function (el, className) {\n if (!el) return null\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 (!util.hasClass(el, className)) {\n el.className += ' ' + className\n }\n}\n\nutil.removeClass = function (el, className) {\n if (!el) return null\n if (el.classList) {\n className.split(/\\s+/g).forEach(item => {\n el.classList.remove(item)\n })\n } else if (util.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\nutil.toggleClass = function (el, className) {\n if (!el) return null\n className.split(/\\s+/g).forEach(item => {\n if (util.hasClass(el, item)) {\n util.removeClass(el, item)\n } else {\n util.addClass(el, item)\n }\n })\n}\n\nutil.findDom = function (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.startsWith('#')) {\n dom = el.getElementById(sel.slice(1))\n }\n }\n return dom\n}\n\nutil.padStart = function (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\nutil.format = function (time) {\n if (window.isNaN(time)) {\n return ''\n }\n let hour = util.padStart(Math.floor(time / 3600), 2, 0)\n let minute = util.padStart(Math.floor((time - hour * 3600) / 60), 2, 0)\n let second = util.padStart(Math.floor((time - hour * 3600 - minute * 60)), 2, 0)\n return (hour === '00' ? [minute, second] : [hour, minute, second]).join(':')\n}\n\nutil.event = function (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\nutil.typeOf = function (obj) {\n return Object.prototype.toString.call(obj).match(/([^\\s.*]+)(?=]$)/g)[0]\n}\n\nutil.deepCopy = function (dst, src) {\n if (util.typeOf(src) === 'Object' && util.typeOf(dst) === 'Object') {\n Object.keys(src).forEach(key => {\n if (util.typeOf(src[key]) === 'Object' && !(src[key] instanceof Node)) {\n if (!dst[key]) {\n dst[key] = src[key]\n } else {\n util.deepCopy(dst[key], src[key])\n }\n } else if (util.typeOf(src[key]) === 'Array') {\n dst[key] = util.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}\nutil.getBgImage = function (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\nutil.copyDom = function (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\nutil.setInterval = function (context, eventName, intervalFunc, frequency) {\n if (!context._interval[eventName]) {\n context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency)\n }\n}\n\nutil.clearInterval = function (context, eventName) {\n clearInterval(context._interval[eventName])\n context._interval[eventName] = null\n}\n\nutil.createImgBtn = function (name, imgUrl, width, height) {\n let btn = util.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 = parseFloat(width.slice(0, width.indexOf(item)).trim())\n h = parseFloat(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\nutil.Hex2RGBA = function (hex, alpha) {\n let rgb = [] // 定义rgb数组\n if (/^\\#[0-9A-F]{3}$/i.test(hex)) {\n let sixHex = '#'\n hex.replace(/[0-9A-F]/ig, function (kw) {\n sixHex += kw + kw\n })\n hex = sixHex\n }\n if (/^#[0-9A-F]{6}$/i.test(hex)) {\n hex.replace(/[0-9A-F]{2}/ig, function (kw) {\n rgb.push(eval('0x' + kw))\n })\n return `rgba(${rgb.join(',')}, ${alpha})`\n } else {\n return 'rgba(255, 255, 255, 0.1)'\n }\n}\n\nutil.isSupportMP4 = function () {\n const RegExp = [{\n key: 'Trident',\n reg: /(rv:)([\\d.]+)/\n },\n {\n key: 'Trident',\n reg: /(msie)\\s*([\\d.]+)/\n }, {\n key: 'Chrome',\n reg: /(chrome)\\/([\\d.]+)/\n }]\n const ua = navigator.userAgent.toLowerCase()\n let match = null\n const browser = {}\n for (const key in RegExp) {\n match = RegExp[key].reg.exec(ua)\n if (match) {\n const name = RegExp[key].key\n browser[`is${name}`] = name\n browser.name = name\n browser.appVersion = match.length > 2 ? match[2] : ''\n break\n }\n }\n\n if (!(browser.isChrome && (browser.appVersion === '77.0.3835.0' || browser.appVersion === '76.0.3790.0')) && !browser.isTrident) {\n return true\n }\n const H264_MIMETYPES = [\n 'avc1.42E01E, mp4a.40.2',\n 'avc1.58A01E, mp4a.40.2',\n 'avc1.4D401E, mp4a.40.2',\n 'avc1.64001E, mp4a.40.2',\n 'avc1.42E01E',\n 'mp4v.20.8',\n 'mp4v.20.240',\n 'avc1.42E01E, mp4a.40.2',\n 'avc1.58A01E, mp4a.40.2',\n 'avc1.4D401E, mp4a.40.2',\n 'avc1.64001E, mp4a.40.2',\n 'mp4v.20.8, mp4a.40.2',\n 'mp4v.20.240, mp4a.40.2'\n ]\n let a = document.createElement('video')\n let result = {\n isSupport: false,\n mime: ''\n }\n if (typeof a.canPlayType === 'function') {\n H264_MIMETYPES.map(key => {\n if (a.canPlayType(`video/mp4; codecs=\"${key}\"`) === 'probably') {\n result.isSupport = true\n result.mime += `||${key}`\n }\n })\n return result.isSupport\n }\n a = null\n return result.isSupport\n}\n\nutil.calcFrameRate = function (player) {\n if (!player || !player.video || player.video.webkitDecodedFrameCount === undefined || player.video.webkitDroppedFrameCount === undefined) return false\n\n let frameRateInterval = player.config.frameRateInterval || 1000\n\n player.currentFrameRate = 0\n player.currentDecodedFrameCount = 0\n\n if (player.frameRateTimer) {\n player.frameRateTimer.clear()\n player.frameRateTimer = null\n }\n\n player.frameRateTimer = new IntervalTimer()\n player.frameRateTimer.repeat(() => {\n player.currentFrameRate = (player.video.webkitDecodedFrameCount - player.currentDecodedFrameCount) / frameRateInterval * 1000\n player.currentDecodedFrameCount = player.video.webkitDecodedFrameCount\n player.currentDroppedFrameCount = player.video.webkitDroppedFrameCount\n }, frameRateInterval)\n\n function destroyFunc () {\n if (player.frameRateTimer) {\n player.frameRateTimer.clear()\n player.frameRateTimer = null\n }\n player.off('destroy', destroyFunc)\n }\n player.once('destroy', destroyFunc)\n\n return true\n}\n\nutil.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\nutil.on = (object, event, fn, offEvent) => {\n if (offEvent) {\n object.on(event, fn)\n util.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\nutil.once = (object, event, fn, offEvent) => {\n if (offEvent) {\n object.once(event, fn)\n util.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\nutil.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), 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 default util\n","import pasition from 'pasition'\nimport './animation'\nclass SVG {\n constructor (options = {}) {\n this.from = options.from\n this.to = options.to\n this.easing = options.easing || function (t) { return t * t }\n this.duration = options.duration || 150\n this.curPath = ''\n this.progress = options.progress\n this.state = 0// 0=idle,1=busy,2=break off\n }\n animate () {\n let self = this; let beginTime = new Date(); let time = self.duration\n let outShape = null\n let pathA = self.path2shapes(self.from)\n let pathB = self.path2shapes(self.to)\n let pathArr = self._preprocessing(pathA, pathB)\n self.state = 1\n let tick = () => {\n let dt = new Date() - beginTime\n if (dt >= time || self.state === 2) {\n outShape = pathB\n self.progress(outShape, 1)\n window.cancelAnimationFrame(self.tickId)\n self.state = 0\n return\n }\n let percent = self.easing(dt / time)\n outShape = self._lerp(pathArr[0], pathArr[1], percent)\n self.progress(outShape, percent)\n self.tickId = window.requestAnimationFrame(tick)\n }\n tick()\n }\n toSVGString (shapes) {\n return shapes.map(function (shape) {\n shape.forEach(function (point, idx) {\n if (!idx) {\n point.splice(2, 0, 'C')\n point.unshift('M')\n } else {\n point.splice(0, 2, 'C')\n }\n })\n return shape.map(function (point) {\n return point.join(' ')\n }).join('')\n }).join('')\n }\n start () {\n this.animate()\n }\n stop () {\n if (this.state !== 0) {\n this.state = 2\n }\n window.cancelAnimationFrame(self.tickId)\n this.state = 0\n }\n reverse () {\n if (this.state !== 0) {\n this.stop()\n }\n let tmp = this.from\n this.from = this.to\n this.to = tmp\n this.animate()\n }\n reset (to, from = this.from) {\n if (this.state !== 0) {\n this.stop()\n }\n this.from = from\n this.to = to\n this.animate()\n }\n}\n\nfor (let k in pasition) {\n if (pasition[k] instanceof Function && !SVG.prototype[k]) {\n SVG.prototype[k] = pasition[k]\n }\n}\n\nexport default SVG\n","\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n","// 替代setInterval\nclass IntervalTimer {\n constructor () {\n this.timeID = null\n this.func = null\n }\n\n repeat (func, ms) {\n if (this.func === null) {\n this.func = func\n }\n\n if (this.func !== func) {\n return\n }\n\n this.timeID = setTimeout(() => {\n func()\n this.repeat(func, ms)\n }, ms)\n }\n\n clear () {\n clearTimeout(this.timeID)\n }\n}\n\nexport default IntervalTimer\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}","import {version} from '../package.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 static get ErrorTypes() {\n return ErrorTypes\n }\n constructor (type, currentTime, duration, networkState, readyState, src, currentSrc,\n ended, errd = {line: '', handle: '', msg: '', version: ''}) {\n let r = {}\n if (arguments.length >= 3 && arguments.length < 5) {\n r.playerVersion = version // 播放器版本\n r.errorType = arguments[0]\n r.code = arguments[1]\n r.errd = arguments[2] || {}// 错误详情\n r.ex = (r.errd || {}).msg // 补充信息\n r.domain = document.domain // domain\n } else {\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.code = r.errd.code\n }\n \n return r\n }\n}\n\nexport default Errors","let sniffer = {\n get device () {\n let r = sniffer.os\n return r.isPc ? 'pc' : 'mobile'\n // return r.isPc ? 'pc' : r.isTablet ? 'tablet' : 'mobile'\n },\n get browser () {\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 get os () {\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 * as Controls from './control/*.js'\n\nexport default Controls.control","import Player from '../player'\nimport '../style/player/volume.scss'\nimport SVG from '../utils/svg'\n\nlet volume = function () {\n let player = this; let util = Player.util; let sniffer = Player.sniffer; let scale = 0.0220625\n if (player.config.autoplayMuted) {\n player.config.volume = player.config.autoplay ? 0 : player.config.volume\n }\n\n function canplayVolFunc () {\n if (player.config.autoplay && player.config.autoplayMuted) {\n player.volume = 0\n } else {\n player.volume = player.config.volume\n }\n }\n util.once(player, 'canplay', canplayVolFunc)\n\n let volume = player.config.volume\n if (sniffer.device === 'mobile') {\n let scale = 0.0220625\n let volumePath = {\n muted: 'M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z',\n large: 'M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z'\n }\n let v2s = (vol) => {\n let s = ''\n if (vol === 0) {\n s = 'muted'\n } else {\n s = 'large'\n }\n return s\n }\n let curIocnPath = volumePath[v2s(volume)]\n let defaultPath = volumePath[v2s(volume)]\n let container = util.createDom('xg-volume', `<xg-icon class=\"xgplayer-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z\"></path>\n <path transform=\"scale(${scale} ${scale})\" d=\"${defaultPath}\"></path>\n </svg>\n </xg-icon>`,\n {}, 'xgplayer-volume')\n player.controls.appendChild(container)\n let icon = container.querySelector('.xgplayer-icon')\n let pathVolume = container.querySelectorAll('path')[1]\n let svgVolume = new SVG({\n progress: (shape, percent) => {\n let _p = svgVolume.toSVGString(shape)\n pathVolume.setAttribute('d', _p)\n curIocnPath = _p\n },\n from: curIocnPath,\n to: volumePath['large']\n });\n ['touchend', 'mousedown'].forEach((item) => {\n icon.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (player.video.muted) {\n player.video.muted = false\n player.volume = 1\n svgVolume.reset(volumePath['large'], volumePath['muted'])\n curIocnPath = volumePath['large']\n } else {\n player.volume = 0\n player.video.muted = true\n svgVolume.reset(volumePath['muted'], volumePath['large'])\n curIocnPath = volumePath['muted']\n }\n })\n })\n return\n }\n\n let iconPath = {\n muted: 'M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z',\n small: 'M795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z',\n large: 'M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z'\n }\n let v2s = (vol) => {\n let s = ''\n if (vol === 0) {\n s = 'muted'\n } else if (vol < 0.5) {\n s = 'small'\n } else {\n s = 'large'\n }\n return s\n }\n let curIocnPath = iconPath[v2s(volume)]\n let defaultPath = iconPath[v2s(volume)]\n let container = util.createDom('xg-volume', `<xg-icon class=\"xgplayer-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z\"></path>\n <path transform=\"scale(${scale} ${scale})\" d=\"${defaultPath}\"></path>\n </svg>\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>`,\n {}, 'xgplayer-volume'); let root = player.controls\n root.appendChild(container)\n let containerHeight\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 let path = container.querySelectorAll('path')[1]\n let svg = new SVG({\n progress: (shape, percent) => {\n let _p = svg.toSVGString(shape)\n path.setAttribute('d', _p)\n curIocnPath = _p\n },\n from: curIocnPath,\n to: iconPath['large']\n })\n slider.volume = player.config.volume;\n\n ['touchstart', 'mousedown'].forEach(item => {\n bar.addEventListener(item, function (e) {\n if(!slider) return\n player.video.muted = false\n slider.focus()\n util.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 util.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 util.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 });\n\n ['touchstart', 'mousedown'].forEach((item) => {\n icon.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\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 })\n\n icon.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(player.root, 'xgplayer-volume-active')\n container.focus()\n })\n\n container.addEventListener('blur', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-volume-active')\n })\n\n container.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-volume-active')\n })\n\n let _changeTimer = null\n function volumechangeFunc () {\n if (_changeTimer) {\n clearTimeout(_changeTimer)\n }\n _changeTimer = setTimeout(() => {\n svg.reset(iconPath[v2s(player.volume)], curIocnPath)\n curIocnPath = iconPath[v2s[player.volume]]\n if (!containerHeight) {\n containerHeight = bar.getBoundingClientRect().height || 76\n }\n selected.style.height = `${player.volume * containerHeight}px`\n }, 50)\n }\n util.on(player, 'volumechange', volumechangeFunc, 'destroy')\n}\n\nexport default {\n name: 'volume',\n method: volume\n}","import EventEmitter from 'event-emitter'\nimport util from './utils/util'\nimport Errors from './error'\nconst ua = navigator.userAgent\nconst IS_SAFARI = ua.indexOf('Safari') > -1 && ua.indexOf('mac') > -1\n// import allOff from 'event-emitter/all-off'\nclass Proxy {\n constructor (options) {\n this._hasStart = false\n this._seekingTimer = null\n this.videoConfig = {\n controls: false,\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'],\n 'x5-video-player-fullscreen': options['x5-video-player-fullscreen'],\n 'x5-video-orientation': options['x5-video-orientation'],\n airplay: options['airplay'],\n 'webkit-airplay': options['airplay'],\n tabindex: 2,\n mediaType: options.mediaType || 'video'\n }\n if (options.loop) {\n this.videoConfig.loop = 'loop'\n }\n if (options.crossorigin) {\n this.videoConfig.crossorigin = 'anonymous'\n }\n let textTrackDom = ''\n if (options.textTrack && Array.isArray(options.textTrack)) {\n options.textTrack.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 : util.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 = util.createDom(this.videoConfig.mediaType, textTrackDom, this.videoConfig, '')\n }\n if (options.autoplay) {\n // this.video.autoplay = true\n if (options.autoplayMuted) {\n this.video.muted = true\n }\n }\n this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked',\n 'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'loadeddata', 'loadedmetadata', '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 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], function () {\n // fix when video destroy called and video reload\n if (!self.src) {\n return\n }\n if (name === 'play') {\n self.hasStart = true\n } else if (name === 'waiting') {\n self.inWaitingStart = new Date().getTime()\n } else if (name === 'playing') {\n if (self.inWaitingStart) {\n self.inWaitingStart = undefined\n }\n }\n if (name === 'error') {\n self._onError()\n } else {\n self.emit(name, self)\n }\n\n if (self.hasOwnProperty('_interval')) {\n if (['ended', 'error', 'timeupdate'].indexOf(name) < 0) {\n clearInterval(self._interval['bufferedChange'])\n util.setInterval(self, 'bufferedChange', function () {\n let curBuffer = []\n for (let i = 0, len = self.video.buffered.length; i < len; i++) {\n curBuffer.push([self.video.buffered.start(i), self.video.buffered.end(i)])\n }\n if (curBuffer.toString() !== lastBuffer) {\n lastBuffer = curBuffer.toString()\n self.emit('bufferedChange', curBuffer)\n }\n }, 200)\n } else {\n if (name !== 'timeupdate') {\n util.clearInterval(self, 'bufferedChange')\n }\n }\n }\n }, false)\n })\n }\n\n _onError () {\n const self = this\n if (self.video.error) {\n if (self.video.error.message && self.video.error.message.indexOf('Empty src attribute') > -1) {\n return\n }\n self.emit('error', new Errors('other', self.currentTime, self.duration, self.networkState, self.readyState, self.currentSrc, self.src,\n self.ended, {\n line: 41,\n msg: self.error,\n handle: 'Constructor',\n code: self.errorCode\n }))\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 // allOff(this)\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 () {\n this.video.canPlayType()\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 set autoplay (isTrue) {\n if (!this.video) return\n this.video.autoplay = isTrue\n }\n get autoplay () {\n if (!this.video) return null\n return this.video.autoplay\n }\n get buffered () {\n if (!this.video) return null\n return this.video.buffered\n }\n get buffered2 () {\n return util.getBuffered2(this.video.buffered)\n }\n get crossOrigin () {\n if (!this.video) return null\n return this.video.crossOrigin\n }\n set crossOrigin (isTrue) {\n if (!this.video) return\n this.video.crossOrigin = isTrue\n }\n get currentSrc () {\n if (!this.video) return null\n return this.video.currentSrc\n }\n set currentSrc (src) {\n if (!this.video) return\n this.video.currentSrc = src\n }\n get currentTime () {\n if (!this.video) return null\n return this.video.currentTime\n }\n set currentTime (time) {\n if (typeof isFinite === 'function' && !isFinite(time)) return\n if (this.video) {\n this.video.currentTime = time\n this.emit('currentTimeChange')\n }\n }\n get defaultMuted () {\n if (!this.video) return null\n return this.video.defaultMuted\n }\n set defaultMuted (isTrue) {\n if (!this.video) return\n this.video.defaultMuted = isTrue\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) return null\n return this.video.ended\n }\n get error () {\n if (!this.video) return null\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 errorCode () {\n if (!this.video) return null\n let err = this.video.error || {}\n return err.code\n }\n get loop () {\n if (!this.video) return null\n return this.video.loop\n }\n set loop (isTrue) {\n if (!this.video) return\n this.video.loop = isTrue\n }\n get muted () {\n if (!this.video) return null\n return this.video.muted\n }\n set muted (isTrue) {\n if (!this.video) return\n this.video.muted = isTrue\n }\n get networkState () {\n if (!this.video) return null\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) return null\n return this.video.paused\n }\n get playbackRate () {\n if (!this.video) return null\n return this.video.playbackRate\n }\n set playbackRate (rate) {\n if (!this.video) return\n this.video.playbackRate = rate\n }\n get played () {\n if (!this.video) return null\n return this.video.played\n }\n get preload () {\n if (!this.video) return null\n return this.video.preload\n }\n set preload (isTrue) {\n if (!this.video) return\n this.video.preload = isTrue\n }\n get readyState () {\n if (!this.video) return null\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) return null\n return this.video.seekable\n }\n get seeking () {\n if (!this.video) return null\n return this.video.seeking\n }\n get src () {\n if (!this.video || !this.video.src || this.video.src === location.href) return null\n return this.video.src\n }\n set src (url) {\n if (!this.video) return\n this.video.pause()\n if(typeof this.config.beforeStartRun === 'function') {\n this.config.beforeStartRun().then(() => {\n this.video.src = url\n this.emit('srcChange')\n })\n } else {\n this.video.src = url\n this.emit('srcChange')\n }\n }\n get volume () {\n if (!this.video) return null\n return this.video.volume\n }\n set volume (vol) {\n if (typeof isFinite === 'function' && !isFinite(vol)) return\n if (!this.video) return\n this.video.volume = vol\n }\n get fullscreen () {\n return util.hasClass(this.root, 'xgplayer-is-fullscreen') || util.hasClass(this.root, 'xgplayer-fullscreen-active')\n }\n get bullet () {\n return util.findDom(this.root, 'xg-bullet') ? util.hasClass(util.findDom(this.root, 'xg-bullet'), 'xgplayer-has-bullet') : false\n }\n get textTrack () {\n return util.hasClass(this.root, 'xgplayer-is-textTrack')\n }\n get pip () {\n return util.hasClass(this.root, 'xgplayer-pip-active')\n }\n}\n\nexport default Proxy\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 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","class INDEXDB {\n constructor (mydb = {name: 'xgplayer', version: 1, db: null, ojstore: {name: 'xg-m4a', keypath: 'vid'}}) {\n this.indexedDB = window.indexedDB || window.webkitindexedDB\n this.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange // 键范围\n this.myDB = mydb\n }\n\n openDB (callback) {\n // 建立或打开数据库,建立对象存储空间(ObjectStore)\n let self = this\n let version = this.myDB.version || 1\n let request = self.indexedDB.open(self.myDB.name, version)\n request.onerror = function (e) {\n // console.log('e.currentTarget.error.message')\n }\n request.onsuccess = e => {\n this.myDB.db = e.target.result\n // console.log('成功建立并打开数据库:' + this.myDB.name + ' version' + this.myDB.version)\n callback.call(self)\n }\n request.onupgradeneeded = e => {\n let db = e.target.result\n let transaction = e.target.transaction\n let store\n if (!db.objectStoreNames.contains(self.myDB.ojstore.name)) {\n // 没有该对象空间时创建该对象空间\n store = db.createObjectStore(self.myDB.ojstore.name, {keyPath: self.myDB.ojstore.keypath})\n // console.log('成功建立对象存储空间:' + this.myDB.ojstore.name)\n }\n }\n }\n\n deletedb () {\n // 删除数据库\n let self = this\n self.indexedDB.deleteDatabase(this.myDB.name)\n // console.log(this.myDB.name + '数据库已删除')\n }\n\n closeDB () {\n // 关闭数据库\n this.myDB.db.close()\n // console.log('数据库已关闭')\n }\n\n addData (storename, data) {\n // 添加数据,重复添加会报错\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n let request\n for (let i = 0; i < data.length; i++) {\n request = store.add(data[i])\n request.onerror = function () {\n // console.error('add添加数据库中已有该数据')\n }\n request.onsuccess = function () {\n // console.log('add添加数据已存入数据库')\n }\n }\n }\n\n putData (storename, data) {\n // 添加数据,重复添加会更新原有数据\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n let request\n for (let i = 0; i < data.length; i++) {\n request = store.put(data[i])\n request.onerror = function () {\n // console.error('put添加数据库中已有该数据')\n }\n request.onsuccess = function () {\n // console.log('put添加数据已存入数据库')\n }\n }\n }\n\n getDataByKey (storename, key, callback) {\n let self = this\n // 根据存储空间的键找到对应数据\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n let request = store.get(key)\n request.onerror = function () {\n // console.error('getDataByKey error')\n callback.call(self, null)\n }\n request.onsuccess = function (e) {\n let result = e.target.result\n // console.log('查找数据成功')\n callback.call(self, result)\n }\n }\n\n deleteData (storename, key) {\n // 删除某一条记录\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n store.delete(key)\n // console.log('已删除存储空间' + storename + '中' + key + '记录')\n }\n\n clearData (storename) {\n // 删除存储空间全部记录\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n store.clear()\n // console.log('已删除存储空间' + storename + '全部记录')\n }\n}\n\nexport default INDEXDB\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","/*!\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!./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{background:#000;width:100%;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.xgplayer *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.xgplayer.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.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer video{width:100%;height:100%;outline:none}.xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;-webkit-order:1;-moz-box-ordinal-group:2;order:1}.xgplayer .xgplayer-none{display:none}@-webkit-keyframes playPause{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}99%{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:0}to{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@-webkit-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}}@-webkit-keyframes enterTips{0%{opacity:0;left:0;width:3px}50%{opacity:1;left:50%;width:5px}to{opacity:0;left:100%;width:3px}}.xgplayer-controls{display:-webkit-flex;display:-moz-box;display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:linear-gradient(-1deg,rgba(0,0,0,.3),transparent);z-index:10}.xgplayer-nostart .xgplayer-controls{display:none}.no-controls .xgplayer-controls{display:none!important}.xgplayer-inactive .xgplayer-controls,.xgplayer-is-live .xgplayer-controls>*{display:none}.xgplayer-is-live .xgplayer-controls .xgplayer-fullscreen,.xgplayer-is-live .xgplayer-controls .xgplayer-live,.xgplayer-is-live .xgplayer-controls .xgplayer-placeholder,.xgplayer-is-live .xgplayer-controls .xgplayer-play,.xgplayer-is-live .xgplayer-controls .xgplayer-play-img,.xgplayer-is-live .xgplayer-controls .xgplayer-volume{display:block}.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-placeholder{-webkit-flex:1;-moz-box-flex:1;flex:1;-webkit-order:3;-moz-box-ordinal-group:4;order:3;display:block}.xgplayer-start{display:none;border-radius:50%;width:70px;height:70px;background:hsla(0,0%,100%,.3);overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:1000;margin:-55px auto auto -35px;cursor:pointer}.xgplayer-nostart .xgplayer-start,.xgplayer-start-appear .xgplayer-start{margin:-35px auto auto -35px;display:inline-block}.xgplayer-inactive .xgplayer-start{margin:-35px auto auto -35px}.xgplayer-start svg{fill:hsla(0,0%,100%,.7);margin:14px}.xgplayer-start.xgplayer-start-interact{-webkit-animation:playPause .4s ease-out forwards;animation:playPause .4s ease-out forwards}.xgplayer-start:hover{background:hsla(0,0%,100%,.5)}.xgplayer-start:hover svg{fill:hsla(0,0%,100%,.6)}.xgplayer-start-img{display:none;position:absolute;left:50%;top:50%;z-index:1000;cursor:pointer}.xgplayer-nostart .xgplayer-start-img{display:block}.xgplayer-start-img.xgplayer-start-interact{-webkit-animation:playPause .4s ease-out forwards;animation:playPause .4s ease-out forwards}.xgplayer-start-img:hover{opacity:.85}@keyframes playPause{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}99%{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:0}to{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}@keyframes enterTips{0%{opacity:0;left:0;width:3px}50%{opacity:1;left:50%;width:5px}to{opacity:0;left:100%;width:3px}}.xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000 url(\\\"//lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/byted-player-images/1.0.3/xg-bg.svg\\\") no-repeat 50%/102%;z-index:1100}.xgplayer-enter .xgplayer-enter-logo{display:block;position:absolute;left:50%;top:50%;height:82px;width:242px;background-size:242px 82px;margin:-71px auto auto -121px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWUAAAB4CAYAAAAquuNKAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFGmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDgtMjBUMTQ6Mjg6NTYrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTA4LTIwVDE0OjMwOjMyKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTA4LTIwVDE0OjMwOjMyKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAwYTAwMjI3LTA0Y2Yt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)}.xgplayer-enter .xgplayer-enter-tips{display:none;position:absolute;left:50%;top:50%;width:198px;margin:20px auto auto -77px;height:1px;background:linear-gradient(90deg,#000,red,red,red,#000)}.xgplayer-enter .xgplayer-enter-tips:before{content:\\\" \\\";display:block;width:5px;height:1px;border-radius:50%;position:absolute;left:0;top:0;-webkit-animation:enterTips 1.6s linear infinite;animation:enterTips 1.6s linear infinite;background:#fff}.xgplayer-is-enter .xgplayer-enter,.xgplayer-is-enter .xgplayer-enter .xgplayer-enter-tips{display:block}.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","export const PLAYER_EVENTS = {\n PLAYER_WAITING:'PLAYER_WAITING',\n PLAYER_RESUME:'PLAYER_RESUME'\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-volume{outline:none;-webkit-order:4;-moz-box-ordinal-group:5;order:4;width:28px;height:140px;display:inline-block;position:relative;margin-top:-100px;z-index:18}.xgplayer-volume .xgplayer-icon{margin-top:8px;cursor:pointer;position:absolute;bottom:-9px}.xgplayer-slider{display:none;position:absolute;width:28px;height:88px;background:rgba(0,0,0,.54);border-radius:1px;bottom:50px;outline:none;left:0}.xgplayer.xgplayer-volume-active .xgplayer-slider{display:block}.xgplayer-slider:after{content:\\\" \\\";display:block;height:15px;width:28px;position:absolute;bottom:-15px;left:0;z-index:20}.xgplayer-bar,.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-drag{bottom:0;left:0;background:#fa1f41;max-height:76px}.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}\", \"\"]);\n\n// exports\n","/**\n * pasition v1.0.2 By dntzhang\n * Github: https://github.com/AlloyTeam/pasition\n * MIT Licensed.\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.pasition = factory());\n}(this, (function () { 'use strict';\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n//https://github.com/colinmeinke/svg-arc-to-cubic-bezier\n\nvar TAU = Math.PI * 2;\n\nvar mapToEllipse = function mapToEllipse(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x,\n y = _ref.y;\n\n x *= rx;\n y *= ry;\n\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n\n return {\n x: xp + centerx,\n y: yp + centery\n };\n};\n\nvar approxUnitArc = function approxUnitArc(ang1, ang2) {\n var a = 4 / 3 * Math.tan(ang2 / 4);\n\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n};\n\nvar vectorAngle = function vectorAngle(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n var umag = Math.sqrt(ux * ux + uy * uy);\n var vmag = Math.sqrt(ux * ux + uy * uy);\n var dot = ux * vx + uy * vy;\n\n var div = dot / (umag * vmag);\n\n if (div > 1) {\n div = 1;\n }\n\n if (div < -1) {\n div = -1;\n }\n\n return sign * Math.acos(div);\n};\n\nvar getArcCenter = function getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n\n if (radicant < 0) {\n radicant = 0;\n }\n\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n\n return [centerx, centery, ang1, ang2];\n};\n\nvar arcToBezier = function arcToBezier(_ref2) {\n var px = _ref2.px,\n py = _ref2.py,\n cx = _ref2.cx,\n cy = _ref2.cy,\n rx = _ref2.rx,\n ry = _ref2.ry,\n _ref2$xAxisRotation = _ref2.xAxisRotation,\n xAxisRotation = _ref2$xAxisRotation === undefined ? 0 : _ref2$xAxisRotation,\n _ref2$largeArcFlag = _ref2.largeArcFlag,\n largeArcFlag = _ref2$largeArcFlag === undefined ? 0 : _ref2$largeArcFlag,\n _ref2$sweepFlag = _ref2.sweepFlag,\n sweepFlag = _ref2$sweepFlag === undefined ? 0 : _ref2$sweepFlag;\n\n var curves = [];\n\n if (rx === 0 || ry === 0) {\n return [];\n }\n\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp),\n _getArcCenter2 = slicedToArray(_getArcCenter, 4),\n centerx = _getArcCenter2[0],\n centery = _getArcCenter2[1],\n ang1 = _getArcCenter2[2],\n ang2 = _getArcCenter2[3];\n\n var segments = Math.max(Math.ceil(Math.abs(ang2) / (TAU / 4)), 1);\n\n ang2 /= segments;\n\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n\n return curves.map(function (curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery),\n x1 = _mapToEllipse.x,\n y1 = _mapToEllipse.y;\n\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery),\n x2 = _mapToEllipse2.x,\n y2 = _mapToEllipse2.y;\n\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery),\n x = _mapToEllipse3.x,\n y = _mapToEllipse3.y;\n\n return { x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y };\n });\n};\n\n//https://github.com/jkroso/parse-svg-path/blob/master/index.js\n/**\n * expected argument lengths\n * @type {Object}\n */\n\nvar length = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0\n\n /**\n * segment pattern\n * @type {RegExp}\n */\n\n};var segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig;\n\n/**\n * parse an svg path data string. Generates an Array\n * of commands where each command is an Array of the\n * form `[command, arg1, arg2, ...]`\n *\n * @param {String} path\n * @return {Array}\n */\n\nfunction parse(path) {\n var data = [];\n path.replace(segment, function (_, command, args) {\n var type = command.toLowerCase();\n args = parseValues(args);\n\n // overloaded moveTo\n if (type == 'm' && args.length > 2) {\n data.push([command].concat(args.splice(0, 2)));\n type = 'l';\n command = command == 'm' ? 'l' : 'L';\n }\n\n while (true) {\n if (args.length == length[type]) {\n args.unshift(command);\n return data.push(args);\n }\n if (args.length < length[type]) throw new Error('malformed path data');\n data.push([command].concat(args.splice(0, length[type])));\n }\n });\n return data;\n}\n\nvar number = /-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/ig;\n\nfunction parseValues(args) {\n var numbers = args.match(number);\n return numbers ? numbers.map(Number) : [];\n}\n\nfunction shapeBox(shape) {\n var minX = shape[0][0],\n minY = shape[0][1],\n maxX = minX,\n maxY = minY;\n shape.forEach(function (curve) {\n var x1 = curve[0],\n x2 = curve[2],\n x3 = curve[4],\n x4 = curve[6],\n y1 = curve[1],\n y2 = curve[3],\n y3 = curve[5],\n y4 = curve[7];\n\n minX = Math.min(minX, x1, x2, x3, x4);\n minY = Math.min(minY, y1, y2, y3, y4);\n maxX = Math.max(maxX, x1, x2, x3, x4);\n maxY = Math.max(maxY, y1, y2, y3, y4);\n });\n\n return [minX, minY, maxX, maxY];\n}\n\nfunction boxDistance(boxA, boxB) {\n return Math.sqrt(Math.pow(boxA[0] - boxB[0], 2) + Math.pow(boxA[1] - boxB[1], 2)) + Math.sqrt(Math.pow(boxA[2] - boxB[2], 2) + Math.pow(boxA[3] - boxB[3], 2));\n}\n\nfunction curveDistance(curveA, curveB) {\n var x1 = curveA[0],\n x2 = curveA[2],\n x3 = curveA[4],\n x4 = curveA[6],\n y1 = curveA[1],\n y2 = curveA[3],\n y3 = curveA[5],\n y4 = curveA[7],\n xb1 = curveB[0],\n xb2 = curveB[2],\n xb3 = curveB[4],\n xb4 = curveB[6],\n yb1 = curveB[1],\n yb2 = curveB[3],\n yb3 = curveB[5],\n yb4 = curveB[7];\n\n return Math.sqrt(Math.pow(xb1 - x1, 2) + Math.pow(yb1 - y1, 2)) + Math.sqrt(Math.pow(xb2 - x2, 2) + Math.pow(yb2 - y2, 2)) + Math.sqrt(Math.pow(xb3 - x3, 2) + Math.pow(yb3 - y3, 2)) + Math.sqrt(Math.pow(xb4 - x4, 2) + Math.pow(yb4 - y4, 2));\n}\n\nfunction sortCurves(curvesA, curvesB) {\n\n var arrList = permuteCurveNum(curvesA.length);\n\n var list = [];\n arrList.forEach(function (arr) {\n var distance = 0;\n var i = 0;\n arr.forEach(function (index) {\n distance += curveDistance(curvesA[index], curvesB[i++]);\n });\n list.push({ index: arr, distance: distance });\n });\n\n list.sort(function (a, b) {\n return a.distance - b.distance;\n });\n\n var result = [];\n\n list[0].index.forEach(function (index) {\n result.push(curvesA[index]);\n });\n\n return result;\n}\n\nfunction sort(pathA, pathB) {\n\n var arrList = permuteNum(pathA.length);\n\n var list = [];\n arrList.forEach(function (arr) {\n var distance = 0;\n arr.forEach(function (index) {\n distance += boxDistance(shapeBox(pathA[index]), shapeBox(pathB[index]));\n });\n list.push({ index: arr, distance: distance });\n });\n\n list.sort(function (a, b) {\n return a.distance - b.distance;\n });\n\n var result = [];\n\n list[0].index.forEach(function (index) {\n result.push(pathA[index]);\n });\n\n return result;\n}\n\nfunction permuteCurveNum(num) {\n var arr = [];\n\n for (var i = 0; i < num; i++) {\n var indexArr = [];\n for (var j = 0; j < num; j++) {\n var index = j + i;\n if (index > num - 1) index -= num;\n indexArr[index] = j;\n }\n\n arr.push(indexArr);\n }\n\n return arr;\n}\n\nfunction permuteNum(num) {\n var arr = [];\n for (var i = 0; i < num; i++) {\n arr.push(i);\n }\n\n return permute(arr);\n}\n\nfunction permute(input) {\n var permArr = [],\n usedChars = [];\n function main(input) {\n var i, ch;\n for (i = 0; i < input.length; i++) {\n ch = input.splice(i, 1)[0];\n usedChars.push(ch);\n if (input.length == 0) {\n permArr.push(usedChars.slice());\n }\n main(input);\n input.splice(i, 0, ch);\n usedChars.pop();\n }\n return permArr;\n }\n return main(input);\n}\n\nvar pasition = {};\npasition.parser = parse;\n\npasition.lerpCurve = function (pathA, pathB, t) {\n\n return pasition.lerpPoints(pathA[0], pathA[1], pathB[0], pathB[1], t).concat(pasition.lerpPoints(pathA[2], pathA[3], pathB[2], pathB[3], t)).concat(pasition.lerpPoints(pathA[4], pathA[5], pathB[4], pathB[5], t)).concat(pasition.lerpPoints(pathA[6], pathA[7], pathB[6], pathB[7], t));\n};\n\npasition.lerpPoints = function (x1, y1, x2, y2, t) {\n return [x1 + (x2 - x1) * t, y1 + (y2 - y1) * t];\n};\n\npasition.q2b = function (x1, y1, x2, y2, x3, y3) {\n return [x1, y1, (x1 + 2 * x2) / 3, (y1 + 2 * y2) / 3, (x3 + 2 * x2) / 3, (y3 + 2 * y2) / 3, x3, y3];\n};\n\npasition.path2shapes = function (path) {\n //https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths\n //M = moveto\n //L = lineto\n //H = horizontal lineto\n //V = vertical lineto\n //C = curveto\n //S = smooth curveto\n //Q = quadratic Belzier curve\n //T = smooth quadratic Belzier curveto\n //A = elliptical Arc\n //Z = closepath\n //以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位(从上一个点开始)。\n var cmds = pasition.parser(path),\n preX = 0,\n preY = 0,\n j = 0,\n len = cmds.length,\n shapes = [],\n current = null,\n closeX = void 0,\n closeY = void 0,\n preCX = void 0,\n preCY = void 0,\n sLen = void 0,\n curves = void 0,\n lastCurve = void 0;\n\n for (; j < len; j++) {\n var item = cmds[j];\n var action = item[0];\n var preItem = cmds[j - 1];\n\n switch (action) {\n case 'm':\n sLen = shapes.length;\n shapes[sLen] = [];\n current = shapes[sLen];\n preX = preX + item[1];\n preY = preY + item[2];\n break;\n case 'M':\n\n sLen = shapes.length;\n shapes[sLen] = [];\n current = shapes[sLen];\n preX = item[1];\n preY = item[2];\n break;\n\n case 'l':\n current.push([preX, preY, preX, preY, preX, preY, preX + item[1], preY + item[2]]);\n preX += item[1];\n preY += item[2];\n break;\n\n case 'L':\n\n current.push([preX, preY, item[1], item[2], item[1], item[2], item[1], item[2]]);\n preX = item[1];\n preY = item[2];\n\n break;\n\n case 'h':\n\n current.push([preX, preY, preX, preY, preX, preY, preX + item[1], preY]);\n preX += item[1];\n break;\n\n case 'H':\n current.push([preX, preY, item[1], preY, item[1], preY, item[1], preY]);\n preX = item[1];\n break;\n\n case 'v':\n current.push([preX, preY, preX, preY, preX, preY, preX, preY + item[1]]);\n preY += item[1];\n break;\n\n case 'V':\n current.push([preX, preY, preX, item[1], preX, item[1], preX, item[1]]);\n preY = item[1];\n break;\n\n case 'C':\n\n current.push([preX, preY, item[1], item[2], item[3], item[4], item[5], item[6]]);\n preX = item[5];\n preY = item[6];\n break;\n case 'S':\n if (preItem[0] === 'C' || preItem[0] === 'c') {\n current.push([preX, preY, preX + preItem[5] - preItem[3], preY + preItem[6] - preItem[4], item[1], item[2], item[3], item[4]]);\n } else if (preItem[0] === 'S' || preItem[0] === 's') {\n current.push([preX, preY, preX + preItem[3] - preItem[1], preY + preItem[4] - preItem[2], item[1], item[2], item[3], item[4]]);\n }\n preX = item[3];\n preY = item[4];\n break;\n\n case 'c':\n current.push([preX, preY, preX + item[1], preY + item[2], preX + item[3], preY + item[4], preX + item[5], preY + item[6]]);\n preX = preX + item[5];\n preY = preY + item[6];\n break;\n case 's':\n if (preItem[0] === 'C' || preItem[0] === 'c') {\n\n current.push([preX, preY, preX + preItem[5] - preItem[3], preY + preItem[6] - preItem[4], preX + item[1], preY + item[2], preX + item[3], preY + item[4]]);\n } else if (preItem[0] === 'S' || preItem[0] === 's') {\n current.push([preX, preY, preX + preItem[3] - preItem[1], preY + preItem[4] - preItem[2], preX + item[1], preY + item[2], preX + item[3], preY + item[4]]);\n }\n\n preX = preX + item[3];\n preY = preY + item[4];\n\n break;\n case 'a':\n curves = arcToBezier({\n rx: item[1],\n ry: item[2],\n px: preX,\n py: preY,\n xAxisRotation: item[3],\n largeArcFlag: item[4],\n sweepFlag: item[5],\n cx: preX + item[6],\n cy: preY + item[7]\n });\n lastCurve = curves[curves.length - 1];\n\n curves.forEach(function (curve, index) {\n if (index === 0) {\n current.push([preX, preY, curve.x1, curve.y1, curve.x2, curve.y2, curve.x, curve.y]);\n } else {\n current.push([curves[index - 1].x, curves[index - 1].y, curve.x1, curve.y1, curve.x2, curve.y2, curve.x, curve.y]);\n }\n });\n\n preX = lastCurve.x;\n preY = lastCurve.y;\n\n break;\n\n case 'A':\n\n curves = arcToBezier({\n rx: item[1],\n ry: item[2],\n px: preX,\n py: preY,\n xAxisRotation: item[3],\n largeArcFlag: item[4],\n sweepFlag: item[5],\n cx: item[6],\n cy: item[7]\n });\n lastCurve = curves[curves.length - 1];\n\n curves.forEach(function (curve, index) {\n if (index === 0) {\n current.push([preX, preY, curve.x1, curve.y1, curve.x2, curve.y2, curve.x, curve.y]);\n } else {\n current.push([curves[index - 1].x, curves[index - 1].y, curve.x1, curve.y1, curve.x2, curve.y2, curve.x, curve.y]);\n }\n });\n\n preX = lastCurve.x;\n preY = lastCurve.y;\n\n break;\n case 'Q':\n current.push(pasition.q2b(preX, preY, item[1], item[2], item[3], item[4]));\n preX = item[3];\n preY = item[4];\n\n break;\n case 'q':\n current.push(pasition.q2b(preX, preY, preX + item[1], preY + item[2], item[3] + preX, item[4] + preY));\n preX += item[3];\n preY += item[4];\n break;\n\n case 'T':\n\n if (preItem[0] === 'Q' || preItem[0] === 'q') {\n preCX = preX + preItem[3] - preItem[1];\n preCY = preY + preItem[4] - preItem[2];\n current.push(pasition.q2b(preX, preY, preCX, preCY, item[1], item[2]));\n } else if (preItem[0] === 'T' || preItem[0] === 't') {\n current.push(pasition.q2b(preX, preY, preX + preX - preCX, preY + preY - preCY, item[1], item[2]));\n preCX = preX + preX - preCX;\n preCY = preY + preY - preCY;\n }\n\n preX = item[1];\n preY = item[2];\n break;\n\n case 't':\n if (preItem[0] === 'Q' || preItem[0] === 'q') {\n preCX = preX + preItem[3] - preItem[1];\n preCY = preY + preItem[4] - preItem[2];\n current.push(pasition.q2b(preX, preY, preCX, preCY, preX + item[1], preY + item[2]));\n } else if (preItem[0] === 'T' || preItem[0] === 't') {\n current.push(pasition.q2b(preX, preY, preX + preX - preCX, preY + preY - preCY, preX + item[1], preY + item[2]));\n preCX = preX + preX - preCX;\n preCY = preY + preY - preCY;\n }\n\n preX += item[1];\n preY += item[2];\n break;\n\n case 'Z':\n closeX = current[0][0];\n closeY = current[0][1];\n current.push([preX, preY, closeX, closeY, closeX, closeY, closeX, closeY]);\n break;\n case 'z':\n closeX = current[0][0];\n closeY = current[0][1];\n current.push([preX, preY, closeX, closeY, closeX, closeY, closeX, closeY]);\n break;\n }\n }\n\n return shapes;\n};\n\npasition._upCurves = function (curves, count) {\n var i = 0,\n index = 0,\n len = curves.length;\n for (; i < count; i++) {\n curves.push(curves[index].slice(0));\n index++;\n if (index > len - 1) {\n index -= len;\n }\n }\n};\n\nfunction split(x1, y1, x2, y2, x3, y3, x4, y4, t) {\n return {\n left: _split(x1, y1, x2, y2, x3, y3, x4, y4, t),\n right: _split(x4, y4, x3, y3, x2, y2, x1, y1, 1 - t, true)\n };\n}\n\nfunction _split(x1, y1, x2, y2, x3, y3, x4, y4, t, reverse) {\n\n var x12 = (x2 - x1) * t + x1;\n var y12 = (y2 - y1) * t + y1;\n\n var x23 = (x3 - x2) * t + x2;\n var y23 = (y3 - y2) * t + y2;\n\n var x34 = (x4 - x3) * t + x3;\n var y34 = (y4 - y3) * t + y3;\n\n var x123 = (x23 - x12) * t + x12;\n var y123 = (y23 - y12) * t + y12;\n\n var x234 = (x34 - x23) * t + x23;\n var y234 = (y34 - y23) * t + y23;\n\n var x1234 = (x234 - x123) * t + x123;\n var y1234 = (y234 - y123) * t + y123;\n\n if (reverse) {\n return [x1234, y1234, x123, y123, x12, y12, x1, y1];\n }\n return [x1, y1, x12, y12, x123, y123, x1234, y1234];\n}\n\npasition._splitCurves = function (curves, count) {\n var i = 0,\n index = 0;\n\n for (; i < count; i++) {\n var curve = curves[index];\n var cs = split(curve[0], curve[1], curve[2], curve[3], curve[4], curve[5], curve[6], curve[7], 0.5);\n curves.splice(index, 1);\n curves.splice(index, 0, cs.left, cs.right);\n\n index += 2;\n if (index >= curves.length - 1) {\n index = 0;\n }\n }\n};\n\nfunction sync(shapes, count) {\n var _loop = function _loop(i) {\n var shape = shapes[shapes.length - 1];\n var newShape = [];\n\n shape.forEach(function (curve) {\n newShape.push(curve.slice(0));\n });\n shapes.push(newShape);\n };\n\n for (var i = 0; i < count; i++) {\n _loop(i);\n }\n}\n\npasition.lerp = function (pathA, pathB, t) {\n return pasition._lerp(pasition.path2shapes(pathA), pasition.path2shapes(pathB), t);\n};\n\npasition.MIM_CURVES_COUNT = 100;\n\npasition._preprocessing = function (pathA, pathB) {\n\n var lenA = pathA.length,\n lenB = pathB.length,\n clonePathA = JSON.parse(JSON.stringify(pathA)),\n clonePathB = JSON.parse(JSON.stringify(pathB));\n\n if (lenA > lenB) {\n sync(clonePathB, lenA - lenB);\n } else if (lenA < lenB) {\n sync(clonePathA, lenB - lenA);\n }\n\n clonePathA = sort(clonePathA, clonePathB);\n\n clonePathA.forEach(function (curves, index) {\n\n var lenA = curves.length,\n lenB = clonePathB[index].length;\n\n if (lenA > lenB) {\n if (lenA < pasition.MIM_CURVES_COUNT) {\n pasition._splitCurves(curves, pasition.MIM_CURVES_COUNT - lenA);\n pasition._splitCurves(clonePathB[index], pasition.MIM_CURVES_COUNT - lenB);\n } else {\n pasition._splitCurves(clonePathB[index], lenA - lenB);\n }\n } else if (lenA < lenB) {\n if (lenB < pasition.MIM_CURVES_COUNT) {\n pasition._splitCurves(curves, pasition.MIM_CURVES_COUNT - lenA);\n pasition._splitCurves(clonePathB[index], pasition.MIM_CURVES_COUNT - lenB);\n } else {\n pasition._splitCurves(curves, lenB - lenA);\n }\n }\n });\n\n clonePathA.forEach(function (curves, index) {\n clonePathA[index] = sortCurves(curves, clonePathB[index]);\n });\n\n return [clonePathA, clonePathB];\n};\n\npasition._lerp = function (pathA, pathB, t) {\n\n var shapes = [];\n pathA.forEach(function (curves, index) {\n var newCurves = [];\n curves.forEach(function (curve, curveIndex) {\n newCurves.push(pasition.lerpCurve(curve, pathB[index][curveIndex], t));\n });\n shapes.push(newCurves);\n });\n return shapes;\n};\n\npasition.animate = function (option) {\n var pathA = pasition.path2shapes(option.from);\n var pathB = pasition.path2shapes(option.to);\n var pathArr = pasition._preprocessing(pathA, pathB);\n\n var beginTime = new Date(),\n end = option.end || function () {},\n progress = option.progress || function () {},\n begin = option.begin || function () {},\n easing = option.easing || function (v) {\n return v;\n },\n tickId = null,\n outShape = null,\n time = option.time;\n\n begin(pathA);\n\n var tick = function tick() {\n var dt = new Date() - beginTime;\n if (dt >= time) {\n outShape = pathB;\n progress(outShape, 1);\n end(outShape);\n cancelAnimationFrame(tickId);\n return;\n }\n var percent = easing(dt / time);\n outShape = pasition._lerp(pathArr[0], pathArr[1], percent);\n progress(outShape, percent);\n tickId = requestAnimationFrame(tick);\n };\n tick();\n};\n\nreturn pasition;\n\n})));\n","(function () {\n var lastTime = 0\n var vendors = ['webkit', 'moz']\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']\n }\n if (!window.requestAnimationFrame) {\n window.requestAnimationFrame = function (callback, element) {\n var currTime = new Date().getTime()\n var timeToCall = Math.max(0, 16 - (currTime - lastTime))\n var id = window.setTimeout(function () { callback(currTime + timeToCall) }, timeToCall)\n lastTime = currTime + timeToCall\n return id\n }\n }\n\n if (!window.cancelAnimationFrame) {\n window.cancelAnimationFrame = function (id) {\n clearTimeout(id)\n }\n }\n}())\n","import Player from '../player'\nimport '../style/player/time.scss'\n\nlet time = function () {\n let player = this; let util = Player.util\n let format = util.format\n let curtime = util.createDom('xg-time', `<span>${player.currentTime || format(0)}</span><em>${player.duration || format(0)}</em>`, {}, 'xgplayer-time'); let root = player.controls\n root.appendChild(curtime)\n let handle = function () {\n if (player.videoConfig.mediaType !== 'audio' || !player.isProgressMoving || !player.dash) {\n curtime.innerHTML = `<span>${format(player.currentTime || 0)}</span><em>${format(player.duration)}`\n }\n }\n util.on(player, 'durationchange', handle, 'destroy')\n util.on(player, 'timeupdate', handle, 'destroy')\n}\n\nexport default {\n name: 'time',\n method: time\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-time{-webkit-order:2;-moz-box-ordinal-group:3;order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;display:inline-block}.xgplayer-time span:after{content:\\\"/\\\";display:inline-block;padding:0 3px}.xgplayer-time em{color:hsla(0,0%,100%,.5)}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/texttrack.scss'\n\nlet textTrack = function () {\n let endedShow = false\n let player = this; let util = Player.util;\n let ul = util.createDom('xg-textTrack', '', {tabindex: 7}, 'xgplayer-textTrack'); let root = player.controls\n if (Player.sniffer.device === 'mobile') {\n player.config.textTrackActive = 'click'\n }\n let list = player.config.textTrack\n if (list && Array.isArray(list) && list.length > 0) {\n util.addClass(player.root, 'xgplayer-is-textTrack')\n let onCanplay = () => {\n let tmp = ['<ul>']\n tmp.push(`<li class=''}'>关闭</li>`)\n list.forEach(item => {\n tmp.push(`<li class='${item.default ? 'textTrack' : ''}'>${item.label}</li>`)\n })\n let controlText = player.config.lang && player.config.lang === 'zh-cn' ? '字幕' : 'Caption'\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(player.root, 'xgplayer-textTrack-active')\n urlInRoot.focus()\n })\n }\n } else {\n ul.innerHTML = tmp.join('')\n let cur = ul.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 ul.focus()\n })\n }\n root.appendChild(ul)\n }\n }\n util.once(player, 'canplay', onCanplay, 'destroy')\n }\n\n let onEnded = () => {\n let trackDoms = player.root.getElementsByTagName('Track')\n if(trackDoms && trackDoms[0] && trackDoms[0].track && trackDoms[0].track.mode !== 'hidden') {\n endedShow = true\n trackDoms[0].track.mode = 'hidden'\n let onPlaying = () => {\n if(endedShow) {\n endedShow = false\n trackDoms[0].track.mode = 'showing'\n }\n }\n util.once(player, 'playing', onPlaying, 'destroy');\n }\n }\n util.on(player, 'ended', onEnded, 'destroy');\n\n ['touchend', 'click'].forEach(item => {\n ul.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, 'textTrack')\n })\n util.addClass(li, 'textTrack')\n let trackDoms = player.root.getElementsByTagName('Track')\n if (li.innerHTML === '关闭') {\n endedShow = false\n trackDoms[0].track.mode = 'hidden'\n util.removeClass(player.root, 'xgplayer-textTrack-active')\n } else {\n if (!util.hasClass(player.root, 'xgplayer-textTrack-active')) {\n util.addClass(player.root, 'xgplayer-textTrack-active')\n }\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 if (Player.sniffer.device === 'mobile') {\n util.removeClass(player.root, 'xgplayer-textTrack-active')\n }\n }\n } else if (player.config.textTrackActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'span')) {\n if (Player.sniffer.device === 'mobile') {\n util.toggleClass(player.root, 'xgplayer-textTrack-active')\n } else {\n util.addClass(player.root, 'xgplayer-textTrack-active')\n }\n ul.focus()\n }\n player.emit('focus')\n })\n })\n\n ul.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-textTrack-active')\n })\n\n function onBlur () {\n util.removeClass(player.root, 'xgplayer-textTrack-active')\n }\n util.on(player, 'blur', onBlur, 'destroy')\n}\n\nexport default {\n name: 'textTrack',\n method: textTrack\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}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".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-left:10px;margin-top:-119px;margin-bottom:11px}.xgplayer-textTrack 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.xgplayer-textTrack-active .xgplayer-textTrack ul{display:block}.xgplayer-textTrack ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-textTrack ul li.textTrack,.xgplayer-textTrack ul li:hover{color:#fff;opacity:1}.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-is-textTrack .xgplayer-textTrack{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/screenShot.scss'\n\nlet 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\nlet screenShot = function () {\n let player = this\n let util = Player.util\n if (!player.config.screenShot) {\n return\n }\n let btn = util.createDom('xg-screenShot', '<p class=\"name\"><span>截图</span></p>', {tabindex: 11}, 'xgplayer-screenShot')\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 let root = player.controls\n root.appendChild(btn)\n let array = ['click', 'touchstart']\n array.forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n img.onload = (function () {\n canvasCtx.drawImage(player.video, 0, 0, canvas.width, canvas.height)\n img.setAttribute('crossOrigin', 'anonymous')\n img.src = canvas.toDataURL('image/png').replace('image/png', 'image/octet-stream')\n let screenShotImg = img.src.replace(/^data:image\\/[^;]+/, 'data:application/octet-stream')\n saveScreenShot(screenShotImg, '截图.png')\n })()\n })\n })\n}\n\nexport default {\n name: 'screenShot',\n method: screenShot\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-screenShot{-webkit-order:10;-moz-box-ordinal-group:11;order:10;position:relative;outline:none;display:block;cursor:pointer;margin-left:10px;margin-top:9px;margin-bottom:11px;height:20px}.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-screenShot .name span{width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/rotate.scss'\n\nconst rotate = function () {\n let player = this\n if (!this.config.rotate) { return }\n if (this.config.rotate === true) {\n this.config.rotate = {}\n }\n let util = Player.util\n let btn = util.createDom('xg-rotate', '<xg-icon class=\"xgplayer-icon xgplayer-rotate-img\"></xg-icon>', {}, 'xgplayer-rotate')\n let tipsRotate = player.config.lang && player.config.lang === 'zh-cn' ? '旋转' : 'Rotate'\n let tips = util.createDom('xg-tips', tipsRotate, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n let root = player.controls\n root.appendChild(btn)\n\n let rotateDeg = 0\n player.rotate = function (times = 1) {\n let width = player.root.offsetWidth\n let height = player.root.offsetHeight\n\n if (!player.config.rotate.innerRotate) {\n player.root.style.width = height + 'px'\n player.root.style.height = width + 'px'\n }\n\n let factor = player.config.rotate.clockwise ? 1 : -1\n\n rotateDeg = (rotateDeg + 1 + factor * 0.25 * times) % 1\n let scale\n if (rotateDeg === 0.25 || rotateDeg === 0.75) {\n if (player.config.rotate.innerRotate) {\n scale = (height / width).toFixed(2)\n // if (width >= height) { scale = (height / width).toFixed(2) } else { scale = (width / height).toFixed(2) }\n } else {\n scale = (height / width).toFixed(2)\n // if (width >= height) { scale = (width / height).toFixed(2) } else { scale = (height / width).toFixed(2) }\n }\n } else {\n scale = 1\n }\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${rotateDeg}turn) scale(${scale})`\n player.emit('rotate', rotateDeg * 360)\n }\n\n btn.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n tips.style.left = '50%'\n let rect = tips.getBoundingClientRect()\n let rootRect = player.root.getBoundingClientRect()\n if (rect.right > rootRect.right) {\n tips.style.left = `${-rect.right + rootRect.right + 16}px`\n }\n })\n\n btn.addEventListener('click',() => { player.rotate() })\n}\n\nexport default {\n name: 'rotate',\n method: rotate\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-rotate{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;display:inline-block;cursor:pointer;margin:0 4px}.xgplayer-rotate:hover .xgplayer-tips{display:block}.xgplayer-rotate-img{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cg clip-path='url(%23a)' fill='%23fff'%3E%3Cpath d='M11.666 9.167h-7.5a2.5 2.5 0 0 0-2.5 2.5v4.166a2.5 2.5 0 0 0 2.5 2.5h7.5a2.5 2.5 0 0 0 2.5-2.5v-4.166a2.5 2.5 0 0 0-2.5-2.5z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.881 4.063a.83.83 0 0 0 .105 1.193L6.99 8.06A.833.833 0 1 0 8.128 6.84L6.62 5.435l3.199-.013a6.667 6.667 0 0 1 6.374 9.322.833.833 0 0 0 1.528.665A8.334 8.334 0 0 0 9.8 3.756l-3.367.013 1.53-1.64A.833.833 0 1 0 6.743.992L3.903 4.04a.83.83 0 0 0-.021.023z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h20v20H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:10px 10px}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/replay.scss'\n\nlet replay = function () {\n let player = this; let util = Player.util\n let centerBtn = player.config.centerBtn ? player.config.centerBtn : {}\n let iconPath, btn, img, svg\n if (navigator.userAgent.indexOf('iPhone OS 9') > -1) {\n return\n }\n if (centerBtn.type === 'img') {\n btn = util.createDom('xg-replay', '<div class=\"xgplayer-replay-img\"></div>', {}, 'xgplayer-replay')\n img = btn.querySelector('.xgplayer-replay-img')\n img.style.backgroundImage = `url(\"${centerBtn.url.replay}\")`\n if (centerBtn.width && centerBtn.height) {\n let width, height, unit\n ['px', 'rem', 'em', 'pt', 'dp', 'vw', 'vh', 'vm', '%'].every((item) => {\n if (centerBtn.width.indexOf(item) > -1 && centerBtn.height.indexOf(item) > -1) {\n width = parseFloat(centerBtn.width.slice(0, centerBtn.width.indexOf(item)).trim())\n height = parseFloat(centerBtn.height.slice(0, centerBtn.height.indexOf(item)).trim())\n unit = item\n return false\n } else {\n return true\n }\n })\n img.style.width = `${width}${unit}`\n img.style.height = `${height}${unit}`\n img.style.backgroundSize = `${width}${unit} ${height}${unit}`\n img.style.margin = `-${height / 2}${unit} auto auto -${width / 2}${unit}`\n }\n } else {\n iconPath = {\n replay: centerBtn.replayPath ? centerBtn.replayPath : `M8.22708362,13.8757234 L11.2677371,12.6472196 C11.7798067,12.4403301 12.3626381,12.6877273 12.5695276,13.1997969 L12.9441342,14.1269807 C13.1510237,14.6390502 12.9036264,15.2218816 12.3915569,15.4287712 L6.8284538,17.6764107 L5.90126995,18.0510173 C5.38920044,18.2579068 4.80636901,18.0105096 4.5994795,17.49844 L1.97723335,11.0081531 C1.77034384,10.4960836 2.0177411,9.91325213 2.52981061,9.70636262 L3.45699446,9.33175602 C3.96906396,9.12486652 4.5518954,9.37226378 4.75878491,9.88433329 L5.67885163,12.1615783 C7.99551726,6.6766934 13.3983951,3 19.5,3 C27.7842712,3 34.5,9.71572875 34.5,18 C34.5,26.2842712 27.7842712,33 19.5,33 C15.4573596,33 11.6658607,31.3912946 8.87004692,28.5831991 C8.28554571,27.9961303 8.28762719,27.0463851 8.87469603,26.4618839 C9.46176488,25.8773827 10.4115101,25.8794641 10.9960113,26.466533 C13.2344327,28.7147875 16.263503,30 19.5,30 C26.127417,30 31.5,24.627417 31.5,18 C31.5,11.372583 26.127417,6 19.5,6 C14.4183772,6 9.94214483,9.18783811 8.22708362,13.8757234 Z`\n }\n btn = util.createDom('xg-replay', `\n <svg class=\"xgplayer-replay-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"78\" height=\"78\" viewbox=\"0 0 78 78\">\n <path d=\"${iconPath.replay}\"></path>\n </svg>\n <xg-replay-txt class=\"xgplayer-replay-txt\">重播</xg-replay-txt>\n `, {}, 'xgplayer-replay')\n svg = btn.querySelector('.xgplayer-replay-svg')\n }\n let root = player.root\n root.appendChild(btn)\n\n function endedFunc () {\n if (centerBtn.type === 'img') {\n img.style.backgroundImage = `url(\"${centerBtn.url.replay}\")`\n } else {\n btn.querySelector('.xgplayer-replay-txt').textContent = player.lang.REPLAY\n let path = btn.querySelector('path')\n let transform = window.getComputedStyle(path).getPropertyValue('transform')\n if (transform !== 'none') {\n path.setAttribute('transform', transform)\n }\n }\n if (!player.config.loop) {\n util.addClass(root, 'replay')\n }\n }\n\n util.on(player, 'ended', endedFunc, 'destroy')\n let dom = svg || img\n dom.addEventListener('click', function (e) {\n e.preventDefault()\n util.removeClass(root, 'replay')\n player.replay()\n })\n}\n\nexport default {\n name: 'replay',\n method: 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!./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-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:500;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;cursor:pointer}.xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-replay svg path{-webkit-transform:translate(20px,21px);-ms-transform:translate(20px,21px);transform:translate(20px,21px);fill:#ddd}.xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-replay svg:hover path{fill:#fff}.xgplayer-replay .xgplayer-replay-img{position:absolute;left:50%;top:50%;cursor:pointer}.xgplayer-replay .xgplayer-replay-img:hover{opacity:.85}.xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px;cursor:pointer}.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer.xgplayer-ended .xgplayer-replay{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-replay-img{display:none;position:absolute;left:50%;top:50%;z-index:500;cursor:pointer}.xgplayer-replay-img:hover{opacity:.85}.xgplayer.xgplayer-ended .xgplayer-replay-img{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/progress.scss'\n\nconst isRotateFullscreen = (player) => {\n return Player.util.hasClass(player.root, 'xgplayer-rotate-fullscreen')\n}\n\nlet progress = function () {\n let player = this\n let util = Player.util\n let container = util.createDom('xg-progress', '<xg-outer class=\"xgplayer-progress-outer\"><xg-cache class=\"xgplayer-progress-cache\"></xg-cache><xg-played class=\"xgplayer-progress-played\"></xgplayer-played><xg-progress-btn class=\"xgplayer-progress-btn\"></xg-progress-btn><xg-point class=\"xgplayer-progress-point xgplayer-tips\"></xg-point><xg-thumbnail class=\"xgplayer-progress-thumbnail xgplayer-tips\"></xg-thumbnail></xg-outer>', {tabindex: 1}, 'xgplayer-progress')\n let root = player.controls\n let containerWidth\n root.appendChild(container)\n let progress = container.querySelector('.xgplayer-progress-played')\n let btn = container.querySelector('.xgplayer-progress-btn')\n let btnWidth = 14 // btn.getBoundingClientRect().width\n let outer = container.querySelector('.xgplayer-progress-outer')\n let cache = container.querySelector('.xgplayer-progress-cache')\n let point = container.querySelector('.xgplayer-progress-point')\n let thumbnail = container.querySelector('.xgplayer-progress-thumbnail')\n player.dotArr = {}\n function dotEvent (dotItem, text) {\n dotItem.addEventListener('mouseenter', function (e) {\n if (text) {\n util.addClass(dotItem, 'xgplayer-progress-dot-show')\n util.addClass(container, 'xgplayer-progress-dot-active')\n }\n })\n dotItem.addEventListener('mouseleave', function (e) {\n if (text) {\n util.removeClass(dotItem, 'xgplayer-progress-dot-show')\n util.removeClass(container, 'xgplayer-progress-dot-active')\n }\n })\n dotItem.addEventListener('touchend', function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (text) {\n if (!util.hasClass(dotItem, 'xgplayer-progress-dot-show')) {\n Object.keys(player.dotArr).forEach(function (key) {\n if (player.dotArr[key]) {\n util.removeClass(player.dotArr[key], 'xgplayer-progress-dot-show')\n }\n })\n }\n util.toggleClass(dotItem, 'xgplayer-progress-dot-show')\n util.toggleClass(container, 'xgplayer-progress-dot-active')\n }\n })\n }\n function canplayProgFunc () {\n if (player.config.progressDot && util.typeOf(player.config.progressDot) === 'Array') {\n player.config.progressDot.forEach(item => {\n if (item.time >= 0 && item.time <= player.duration) {\n let dot = util.createDom('xg-progress-dot', item.text ? `<span class=\"xgplayer-progress-tip\">${item.text}</span>` : '', {}, 'xgplayer-progress-dot')\n dot.style.left = (item.time / player.duration) * 100 + '%'\n outer.appendChild(dot)\n player.dotArr[item.time] = dot\n dotEvent(dot, item.text)\n }\n })\n }\n }\n util.once(player, 'canplay', canplayProgFunc)\n player.addProgressDot = function (time, text) {\n if (player.dotArr[time]) {\n return\n }\n if (time >= 0 && time <= player.duration) {\n let dot = util.createDom('xg-progress-dot', '', {}, 'xgplayer-progress-dot')\n dot.style.left = (time / player.duration) * 100 + '%'\n outer.appendChild(dot)\n player.dotArr[time] = dot\n dotEvent(dot, text)\n }\n }\n player.removeProgressDot = function (time) {\n if (time >= 0 && time <= player.duration && player.dotArr[time]) {\n let dot = player.dotArr[time]\n dot.parentNode.removeChild(dot)\n dot = null\n player.dotArr[time] = null\n }\n }\n player.removeAllProgressDot = function () {\n Object.keys(player.dotArr).forEach(function (key) {\n if (player.dotArr[key]) {\n let dot = player.dotArr[key]\n dot.parentNode.removeChild(dot)\n dot = null\n player.dotArr[key] = null\n }\n })\n }\n let tnailPicNum = 0\n let tnailWidth = 0\n let tnailHeight = 0\n let tnailCol = 0\n let tnailRow = 0\n let interval = 0\n let tnailUrls = []\n let tnailScale = 1\n if (player.config.thumbnail) {\n tnailPicNum = player.config.thumbnail.pic_num\n tnailWidth = player.config.thumbnail.width\n tnailHeight = player.config.thumbnail.height\n tnailCol = player.config.thumbnail.col\n tnailRow = player.config.thumbnail.row\n tnailUrls = player.config.thumbnail.urls\n tnailScale = player.config.thumbnail.scale || 1\n thumbnail.style.width = `${tnailWidth}px`\n thumbnail.style.height = `${tnailHeight}px`\n thumbnail.style.transform = `scale(${tnailScale})`\n thumbnail.style.transformOrigin = 'center bottom'\n };\n ['touchstart', 'mousedown'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n util.event(e)\n if (e._target === point || (!player.config.allowSeekAfterEnded && player.ended)) {\n return false\n }\n container.focus()\n containerWidth = container.getBoundingClientRect().width\n let {left} = progress.getBoundingClientRect()\n\n const isRotate = isRotateFullscreen(player)\n if (isRotate) {\n left = progress.getBoundingClientRect().top\n containerWidth = container.getBoundingClientRect().height\n } else {\n containerWidth = container.getBoundingClientRect().width\n left = progress.getBoundingClientRect().left\n }\n\n let move = function (e) {\n e.preventDefault()\n e.stopPropagation()\n util.event(e)\n player.isProgressMoving = true\n let w = (isRotate ? e.clientY : e.clientX) - left\n if (w > containerWidth) {\n w = containerWidth\n }\n let now = w / containerWidth * player.duration\n progress.style.width = `${w * 100 / containerWidth}%`\n if (w - btnWidth / 2 < 0) {\n btn.style.left = '0px'\n btn.style.transform = ''\n } else if (w + btnWidth / 2 > containerWidth) {\n btn.style.left = `${containerWidth - btnWidth}px`\n btn.style.transform = ''\n } else {\n btn.style.left = '100%'\n btn.style.transform = 'translate(-50%, 0)'\n }\n\n if (player.videoConfig.mediaType === 'video' && !player.dash && !player.config.closeMoveSeek) {\n player.currentTime = Number(now).toFixed(1)\n } else {\n let time = util.findDom(root, '.xgplayer-time')\n if (time) {\n time.innerHTML = `<span>${util.format(now || 0)}</span><em>${util.format(player.duration)}`\n }\n }\n player.emit('focus')\n }\n let up = function (e) {\n e.preventDefault()\n e.stopPropagation()\n util.event(e)\n window.removeEventListener('mousemove', move)\n window.removeEventListener('touchmove', move, { passive: false })\n window.removeEventListener('mouseup', up)\n window.removeEventListener('touchend', up)\n container.blur()\n if (!player.isProgressMoving || player.videoConfig.mediaType === 'audio' || player.dash || player.config.closeMoveSeek) {\n let w = (isRotate ? e.clientY : e.clientX) - left\n if (w > containerWidth) {\n w = containerWidth\n }\n let now = w / containerWidth * player.duration\n progress.style.width = `${w * 100 / containerWidth}%`\n if (w - btnWidth / 2 < 0) {\n btn.style.left = '0px'\n btn.style.transform = ''\n } else if (w + btnWidth / 2 > containerWidth) {\n btn.style.left = `${containerWidth - btnWidth}px`\n btn.style.transform = ''\n } else {\n btn.style.left = '100%'\n btn.style.transform = 'translate(-50%, 0)'\n }\n player.currentTime = Number(now).toFixed(1)\n if (now >= player.duration) player.emit('seekEnd')\n }\n player.emit('focus')\n player.isProgressMoving = false\n if (player.config.seekEndPlay) {\n player.play()\n }\n }\n window.addEventListener('mousemove', move)\n window.addEventListener('touchmove', move, { passive: false })\n window.addEventListener('mouseup', up)\n window.addEventListener('touchend', up)\n return false\n })\n })\n\n container.addEventListener('mouseenter', function (e) {\n if (!player.config.allowSeekAfterEnded && player.ended) {\n return false\n }\n const isRotate = isRotateFullscreen(player)\n let containerLeft = isRotate ? container.getBoundingClientRect().top : container.getBoundingClientRect().left\n let containerWidth = isRotate ? container.getBoundingClientRect().height : container.getBoundingClientRect().width\n let compute = function (e) {\n let now = ((isRotate ? e.clientY : e.clientX) - containerLeft) / containerWidth * player.duration\n now = now < 0 ? 0 : now\n point.textContent = util.format(now)\n let pointWidth = point.getBoundingClientRect().width\n if (player.config.thumbnail) {\n interval = player.duration / tnailPicNum\n let index = Math.floor(now / interval)\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\n let left = (isRotate ? e.clientY : e.clientX) - containerLeft - tnailWidth / 2\n left = left > 0 ? left : 0\n left = left < containerWidth - tnailWidth * tnailScale ? left : containerWidth - tnailWidth * tnailScale\n thumbnail.style.left = `${left + (tnailScale - 1) * tnailWidth / 2}px`\n thumbnail.style.top = `${-10 - tnailHeight}px`\n thumbnail.style.display = 'block'\n point.style.left = `${left + tnailWidth * tnailScale / 2 - pointWidth / 2}px`\n } else {\n let left = e.clientX - containerLeft - pointWidth / 2\n left = left > 0 ? left : 0\n left = left > containerWidth - pointWidth ? containerWidth - pointWidth : left\n point.style.left = `${left}px`\n }\n if (util.hasClass(container, 'xgplayer-progress-dot-active')) {\n point.style.display = 'none'\n } else {\n point.style.display = 'block'\n }\n }\n let move = function (e) {\n compute(e)\n }\n let leave = function (e) {\n container.removeEventListener('mousemove', move, false)\n container.removeEventListener('mouseleave', leave, false)\n compute(e)\n point.style.display = 'none'\n thumbnail.style.display = 'none'\n }\n container.addEventListener('mousemove', move, false)\n container.addEventListener('mouseleave', leave, false)\n compute(e)\n }, false)\n\n let lastBtnLeft = false\n const handleTimeUpdate = function () {\n if (!containerWidth && container) {\n containerWidth = container.getBoundingClientRect().width\n }\n if (player.videoConfig.mediaType !== 'audio' || !player.isProgressMoving || !player.dash) {\n const precent = player.currentTime / player.duration\n const prevPrecent = parseFloat(progress.style.width || '0') / parseFloat(container.style.width || '100')\n if (Math.abs(precent - prevPrecent) <= 1) {\n progress.style.width = `${player.currentTime * 100 / player.duration}%`\n let left = player.currentTime / player.duration * containerWidth - btnWidth / 2\n if (left < 0) {\n btn.style.left = '0px'\n btn.style.transform = ''\n lastBtnLeft = false\n } else if (left + btnWidth > containerWidth) {\n btn.style.left = `${containerWidth - btnWidth}px`\n btn.style.transform = ''\n lastBtnLeft = false\n } else {\n if (lastBtnLeft) {\n return\n }\n btn.style.left = '100%'\n btn.style.transform = 'translate(-50%, 0)'\n lastBtnLeft = true\n }\n }\n }\n }\n util.on(player, 'timeupdate', handleTimeUpdate, 'destroy')\n\n let onCurrentTimeChange = function () {\n progress.style.width = `${player.currentTime * 100 / player.duration}%`\n let left = player.currentTime / player.duration * containerWidth - btnWidth / 2\n if (left < 0) {\n btn.style.left = '0px'\n btn.style.transform = ''\n lastBtnLeft = false\n } else if (left + btnWidth > containerWidth) {\n btn.style.left = `${containerWidth - btnWidth}px`\n btn.style.transform = ''\n lastBtnLeft = false\n } else {\n if (lastBtnLeft) {\n return\n }\n btn.style.left = '100%'\n btn.style.transform = 'translate(-50%, 0)'\n lastBtnLeft = true\n }\n }\n util.on(player, 'currentTimeChange', onCurrentTimeChange, 'destroy')\n\n let onSrcChange = function () {\n progress.style.width = '0%'\n btn.style.left = '0px'\n btn.style.transform = ''\n lastBtnLeft = false\n }\n util.on(player, 'srcChange', onSrcChange, 'destroy')\n\n const handleCacheUpdate = function () {\n let buffered = player.buffered\n if (buffered && buffered.length > 0) {\n let end = buffered.end(buffered.length - 1)\n for (let i = 0, len = buffered.length; i < len; i++) {\n if (player.currentTime >= buffered.start(i) && player.currentTime <= buffered.end(i)) {\n end = buffered.end(i)\n // for (let j = i + 1; j < buffered.length; j++) {\n // if (buffered.start(j) - buffered.end(j - 1) >= 2) {\n // end = buffered.end(j - 1)\n // break\n // }\n // }\n break\n }\n }\n cache.style.width = `${end / player.duration * 100}%`\n }\n }\n const cacheUpdateEvents = ['bufferedChange', 'cacheupdate', 'ended', 'timeupdate']\n cacheUpdateEvents.forEach(item => {\n util.on(player, item, handleCacheUpdate, 'destroy')\n })\n\n util.once(player, 'destroy', player.removeAllProgressDot)\n}\n\nexport default {\n name: 'progress',\n method: progress\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-progress{display:block;position:absolute;height:20px;line-height:20px;left:0;right:0;outline:none;top:-10px;z-index:35}.xgplayer.xgplayer-definition-active .xgplayer-progress,.xgplayer.xgplayer-playback-active .xgplayer-progress,.xgplayer.xgplayer-textTrack-active .xgplayer-progress,.xgplayer.xgplayer-volume-active .xgplayer-progress{z-index:15}.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-progress-cache,.xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-progress-cache{width:0;background:hsla(0,0%,100%,.5)}.xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#fa1f41,#e31106);border-radius:0 1.5px 1.5px 0}.xgplayer-progress-btn{display:none;position:absolute;left:0;top:-6px;width:14px;height:16px;border-radius:6px;background:#fff;box-shadow:0 0 2px 0 rgba(0,0,0,.26)}.xgplayer-progress-point{position:absolute}.xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;left:0;top:-40px;height:auto;line-height:30px;width:auto;-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8);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-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-progress-thumbnail{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box}.xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-progress:hover .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-progress:hover .xgplayer-progress-dot{height:6px}.xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-progress:hover .xgplayer-progress-btn{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport sniffer from '../utils/sniffer'\nimport '../style/player/poster.scss'\n\nlet poster = function () {\n let player = this; let util = Player.util\n let poster = util.createDom('xg-poster', '', {}, 'xgplayer-poster')\n let root = player.root\n if (player.config.poster) {\n poster.style.backgroundImage = `url(${player.config.poster})`\n root.appendChild(poster)\n }\n\n function hiddenPoster () {\n poster.style.display = 'none'\n }\n util.on(player, 'play', hiddenPoster, 'destroy')\n // if (sniffer.device === 'pc') {\n util.on(player, 'complete', hiddenPoster, 'destroy')\n // }\n}\n\nexport default {\n name: 'poster',\n method: poster\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-poster{position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:50%}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/playNext.scss'\n\nconst playNext = function () {\n let player = this\n const util = Player.util\n const controlEl = player.controls\n let nextBtn = player.config.playNextBtn\n let index = -1\n if (nextBtn && nextBtn.urlList) {\n let next\n if (nextBtn.type === 'img') {\n next = Player.util.createImgBtn('playNext', nextBtn.url, nextBtn.width, nextBtn.height)\n } else {\n next = util.createDom('xg-playNext', `<xg-icon class=\"xgplayer-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(0.025 0.025)\"\n d=\"M800 380v768h-128v-352l-320 320v-704l320 320v-352z\"></path>\n </svg></xg-icon>`, {}, 'xgplayer-playNext')\n }\n controlEl.appendChild(next)\n const ev = ['click', 'touchend']\n ev.forEach(item => {\n next.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if(index + 1 < nextBtn.urlList.length) {\n index++\n player.video.pause()\n player.currentTime = 0\n player.video.autoplay = true\n player.src = nextBtn.urlList[index]\n player.emit('playerNext', index+1)\n } else {\n player.emit('urlList last')\n }\n }, false)\n })\n }\n}\n\nexport default {\n name: 'playNext',\n method: playNext\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-playNext,.xgplayer-playNext-img{-webkit-order:1;-moz-box-ordinal-group:2;order:1;cursor:pointer}.xgplayer-playNext-img:hover,.xgplayer-playNext:hover{opacity:.85}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/playback.scss'\n\nlet playbackRate = function () {\n let player = this\n let sniffer = Player.sniffer\n let util = Player.util\n if (player.config.playbackRate) {\n player.config.playbackRate.sort((a, b) => b - a)\n } else {\n return false\n }\n let container = util.createDom('xg-playback', ' ', {}, 'xgplayer-playback')\n if (sniffer.device === 'mobile') {\n player.config.playbackRateActive = 'click'\n }\n player.controls.appendChild(container)\n let list = []\n player.config.playbackRate.forEach(item => {\n list.push({name: `${item}`, rate: `${item}x`, selected: false})\n })\n function onPlaying () {\n player.video.playbackRate = player.config.defaultPlaybackRate\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 util.once(player, 'playing', onPlaying)\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}x</p>`)\n let playbackDom = player.root.querySelector('.xgplayer-playback')\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 util.addClass(player.root, 'xgplayer-playback-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 util.addClass(player.root, 'xgplayer-playback-active')\n container.focus()\n })\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 (util.hasClass(item, 'selected')) {\n from = parseFloat(item.getAttribute('cname'))\n util.removeClass(item, 'selected')\n }\n })\n item.selected = true\n player.video.playbackRate = item.name * 1\n selectedSpeed = item.name * 1\n }\n })\n util.addClass(li, 'selected')\n to = parseFloat(li.getAttribute('cname'))\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}x`\n player.emit('playbackrateChange', {from, to})\n if (sniffer.device === 'mobile') {\n util.removeClass(player.root, 'xgplayer-playback-active')\n }\n } else if (player.config.playbackRateActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'span')) {\n if (sniffer.device === 'mobile') {\n util.toggleClass(player.root, 'xgplayer-playback-active')\n } else {\n util.addClass(player.root, 'xgplayer-playback-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 util.removeClass(player.root, 'xgplayer-playback-active')\n })\n\n function onBlur () {\n util.removeClass(player.root, 'xgplayer-playback-active')\n }\n util.on(player, 'blur', onBlur, 'destroy')\n\n function onPlay () {\n if (player.video.playbackRate.toFixed(1) !== selectedSpeed.toFixed(1)) {\n player.video.playbackRate = selectedSpeed\n }\n }\n util.on(player, 'play', onPlay, 'destroy')\n}\n\nexport default {\n name: 'playbackRate',\n method: playbackRate\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!./playback.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!./playback.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!./playback.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-playback{-webkit-order:8;-moz-box-ordinal-group:9;order:8;width:60px;height:20px;z-index:18;position:relative;display:inline-block;margin-left:10px;cursor:default}.xgplayer-playback ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:19px;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-playback 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-playback ul li.selected,.xgplayer-playback ul li:hover{color:#fff;opacity:1}.xgplayer-playback ul li:first-child{position:relative;margin-top:12px}.xgplayer-playback ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-playback .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;cursor:pointer;position:relative;top:11px;background:rgba(0,0,0,.38);color:hsla(0,0%,100%,.8);border-radius:10px}.xgplayer-playback span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-playback:hover{opacity:1}.xgplayer-playback-active .xgplayer-playback ul{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport SVG from '../utils/svg'\nimport '../style/player/play.scss'\n\nlet play = function () {\n let player = this\n let root = player.controls; let util = Player.util; let scale = player.config.iconScale || 0.0320625\n let iconPath = {\n play: 'M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z',\n pause: 'M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z'\n }\n let playBtn = player.config.playBtn ? player.config.playBtn : {}\n let btn, path, svg\n if (playBtn.type === 'img') {\n btn = Player.util.createImgBtn('play', playBtn.url.play, playBtn.width, playBtn.height)\n } else {\n btn = util.createDom('xg-play', `<xg-icon class=\"xgplayer-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"${iconPath.play}\"></path>\n </svg></xg-icon>`, {}, 'xgplayer-play')\n path = btn.querySelector('path')\n svg = new SVG({\n progress: (shape, percent) => {\n path.setAttribute('d', svg.toSVGString(shape))\n },\n from: iconPath.pause,\n to: iconPath.play,\n duration: 50\n })\n }\n\n let tipsPlay = player.config.lang && player.config.lang === 'zh-cn' ? '播放' : 'Play'\n let tipsPause = player.config.lang && player.config.lang === 'zh-cn' ? '暂停' : 'Pause'\n let tips = util.createDom('xg-tips', tipsPlay, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n\n let ev = ['click', 'touchstart']\n root.appendChild(btn)\n ev.forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (player.ended) {\n if (player.config.enableEndedPlay) {\n player.replay()\n }\n return\n }\n util.removeClass(player.root, 'xgplayer-nostart')\n if (player.paused) {\n player.play()\n player.emit('playBtnClick', 'play')\n } else {\n player.pause()\n player.emit('playBtnClick', 'pause')\n }\n }, false)\n })\n\n function playFunc () {\n if (playBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${playBtn.url.pause}\")`\n } else {\n setTimeout(() => {\n tips.textContent = tipsPause\n if (svg.to !== iconPath.pause) {\n svg.reset(iconPath.pause, iconPath.play)\n }\n }, 80)\n }\n }\n util.on(player, 'play', playFunc, 'destroy')\n\n function pauseFunc () {\n if (playBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${playBtn.url.play}\")`\n } else {\n setTimeout(() => {\n tips.textContent = tipsPlay\n if (svg.to !== iconPath.play) {\n svg.reset(iconPath.play, iconPath.pause)\n }\n }, 80)\n }\n }\n util.on(player, 'pause', pauseFunc, 'destroy')\n}\n\nexport default {\n name: 'play',\n method: play\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-play,.xgplayer-play-img{position:relative;-webkit-order:0;-moz-box-ordinal-group:1;order:0;display:block;cursor:pointer}.xgplayer-play-img .xgplayer-icon,.xgplayer-play .xgplayer-icon{margin-top:3px}.xgplayer-play-img:hover,.xgplayer-play:hover{opacity:.85}.xgplayer-play-img:hover .xgplayer-tips,.xgplayer-play:hover .xgplayer-tips{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/pip.scss'\n\nlet pip = function () {\n let player = this\n let util = Player.util\n if (!player.config.pip) {\n return\n }\n let btn = util.createDom('xg-pip', '<p class=\"name\"><span>画中画</span></p>', {tabindex: 9}, 'xgplayer-pip')\n let root = player.controls\n let container = player.root\n root.appendChild(btn)\n let clickEvents = ['click', 'touchstart']\n clickEvents.forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (util.hasClass(container, 'xgplayer-pip-active')) {\n player.exitPIP()\n } else {\n player.getPIP()\n }\n })\n })\n}\n\nexport default {\n name: 'pip',\n method: pip\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-pip{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;margin-left:10px;margin-top:9px;margin-bottom:11px;height:20px}.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-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}.xgplayer.xgplayer-pip-active{position:fixed!important;right:0;bottom:200px;z-index:999!important}.xgplayer.xgplayer-pip-active .xgplayer-controls{display:none}.xgplayer.xgplayer-pip-active xg-bullet{opacity:0!important}.xgplayer.xgplayer-pip-active .xgplayer-pip-lay{display:block}.xgplayer-pip-lay{position:absolute;top:26px;left:0;z-index:1450;cursor:pointer;background-color:transparent;display:none}.xgplayer-pip-lay,.xgplayer-pip-lay div{width:100%;height:100%}.xgplayer-pip-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:1500;display:none}.xgplayer.xgplayer-pip-active .xgplayer-pip-drag{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer.xgplayer-inactive .xgplayer-pip-drag{display:none}\", \"\"]);\n\n// exports\n","import Player from '../player'\n\nlet pc = function () {\n let player = this\n let util = Player.util; let controls = player.controls; let root = player.root\n let clk = 0; let _click_\n let centerBtn = player.config.centerBtn ? player.config.centerBtn : {}\n let iconPath, btn, path\n if (centerBtn.type === 'img') {\n btn = Player.util.createImgBtn('start', centerBtn.url.play, centerBtn.width, centerBtn.height)\n } else {\n iconPath = {\n pause: centerBtn.pausePath ? centerBtn.pausePath : 'M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z',\n play: centerBtn.playPath ? centerBtn.playPath : 'M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z'\n }\n btn = util.createDom('xg-start', `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(0.04,0.04)\" d=\"${iconPath.pause}\"></path>\n </svg>`, {}, 'xgplayer-start')\n path = btn.querySelector('path')\n }\n\n let enter = util.createDom('xg-enter', '<xg-enter-logo class=\"xgplayer-enter-logo\"></xg-enter-logo><xg-enter-tips class=\"xgplayer-enter-tips\"></xg-player-tips>', {}, 'xgplayer-enter')\n let logo = enter.querySelector('.xgplayer-enter-logo')\n root.appendChild(btn)\n root.appendChild(enter)\n let enterTips = enter.querySelector('.xgplayer-enter-tips')\n let enterLogo = new Image()\n // enterLogo.onload = () => {\n enterTips.style.display = 'block'\n // }\n if (player.config.enterLogo && player.config.enterLogo.url && player.config.enterLogo.width && player.config.enterLogo.height) {\n enterLogo.src = player.config.enterLogo.url\n\n logo.style.backgroundImage = `url(\"${player.config.enterLogo.url}\")`\n logo.style.width = `${player.config.enterLogo.width}px`\n logo.style.height = `${player.config.enterLogo.height}px`\n\n logo.style.backgroundSize = `${player.config.enterLogo.width}px ${player.config.enterLogo.height}px`\n logo.style.margin = `-${player.config.enterLogo.height / 2}px auto auto -${player.config.enterLogo.width / 2}px`\n\n enterTips.style.margin = `${player.config.enterLogo.height - 6}px auto auto -62px`\n } else {\n if(navigator.userAgent.indexOf('Edge') >= 0) {\n enterLogo.src = '//p3-xg.byteimg.com/obj/tos-cn-i-xg/5f979708e7fd4465ad6fe9a952a468f7'\n } else {\n // enterLogo.src = util.getBgImage(logo)\n }\n }\n\n if (player.config.enterTips && player.config.enterTips.background) {\n enterTips.style.background = `${player.config.enterTips.background}`\n }\n\n if (player.config.enterBg) {\n if (player.config.enterBg.url) {\n enter.style.backgroundImage = `url(\"${player.config.enterBg.url}\")`\n } else if (player.config.enterBg.color) {\n enter.style.background = player.config.enterBg.color\n }\n }\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 startClc (e) {\n e.preventDefault()\n e.stopPropagation()\n // if (!player.config.url) {\n // return\n // }\n if (util.hasClass(root, 'xgplayer-nostart')) {\n util.removeClass(root, 'xgplayer-nostart') // for ie quick switch\n util.addClass(root, 'xgplayer-is-enter')\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 util.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 ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) { startClc(e) }, false)\n })\n\n function startAniEnd (e) {\n e.preventDefault()\n util.removeClass(btn, 'xgplayer-start-interact')\n // btn.style.display = 'none'\n util.removeClass(root, 'xgplayer-nostart')\n util.removeClass(root, 'xgplayer-start-appear')\n }\n btn.addEventListener('animationend', function (e) { startAniEnd(e) })\n btn.addEventListener('webkitAnimationEnd', function (e) { startAniEnd(e) })\n\n function onPlayBtnClick (type) {\n if (type === 'pause') {\n if (centerBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${centerBtn.url.play}\")`\n } else {\n path.setAttribute('d', iconPath.play)\n }\n // btn.style.display = 'inline-block'\n util.addClass(root, 'xgplayer-start-appear')\n util.addClass(btn, 'xgplayer-start-interact')\n } else if (type === 'play') {\n if (centerBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${centerBtn.url.pause}\")`\n } else {\n path.setAttribute('d', iconPath.pause)\n }\n // btn.style.display = 'inline-block'\n util.addClass(root, 'xgplayer-start-appear')\n util.addClass(btn, 'xgplayer-start-interact')\n }\n }\n util.on(player, 'playBtnClick', onPlayBtnClick, 'destroy')\n\n util.once(player, 'autoplay was prevented', () => {\n setTimeout(() => {\n path.setAttribute('d', iconPath.pause)\n Player.util.addClass(player.root, 'xgplayer-nostart')\n }, 500)\n })\n\n player.onElementClick = function (e, element) {\n e.preventDefault()\n e.stopPropagation()\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 (util.hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n player.play()\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 e.preventDefault()\n e.stopPropagation()\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 mouseenterFunc () {\n clearTimeout(player.leavePlayerTimer)\n player.emit('focus', player)\n }\n root.addEventListener('mouseenter', mouseenterFunc, false)\n\n function mouseleaveFunc () {\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', mouseleaveFunc)\n\n function cmouseenterFunc (e) {\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n }\n controls.addEventListener('mouseenter', cmouseenterFunc)\n\n function cmouseleaveFunc (e) {\n if (!player.config.closeControlsBlur) {\n player.emit('focus', player)\n }\n }\n controls.addEventListener('mouseleave', cmouseleaveFunc)\n\n function readyFunc (e) {\n if (player.config.autoplay) {\n player.start()\n }\n }\n util.once(player, 'ready', readyFunc)\n\n function destroyFunc () {\n root.removeEventListener('mouseenter', mouseenterFunc)\n root.removeEventListener('mouseleave', mouseleaveFunc)\n }\n util.once(player, 'destroy', destroyFunc)\n}\n\nexport default {\n name: 'pc',\n method: pc\n}","import Player from '../player'\nimport SVG from '../utils/svg'\nimport '../style/player/mobile.scss'\n\nlet whitelistPass = (list) => {\n let util = Player.util\n return list.some(item => {\n if (util.typeOf(item) === 'Function') {\n return item.call(this, navigator.userAgent)\n } else if (util.typeOf(item) === 'RegExp') {\n return item.test(navigator.userAgent)\n } else if (util.typeOf(item) === 'String') {\n return navigator.userAgent.indexOf(item) > -1\n } else {\n return false\n }\n })\n}\n\nlet debug = (config) => {\n let options = {}\n Object.assign(options, {\n host: '127.0.0.1',\n port: 9090\n }, config)\n let script = document.createElement('script')\n let h4 = document.createElement('h4')\n h4.style.cssText = 'position:fixed;bottom:0;padding:10px;width:100%;background-color:#fff;text-align:center'\n h4.textContent = `weinre --boundHost ${options.host} --httpPort ${options.port}\\r\\n 启动服务后,刷新页面`\n script.anonymous = true\n script.async = true\n script.src = `http://${options.host}:${options.port}/target/target-script-min.js#anonymous`\n script.onload = function () {\n h4.parentNode.removeChild(h4)\n }\n document.body.appendChild(script)\n document.body.appendChild(h4)\n}\n\nlet mobile = function () {\n let player = this\n\n let util = Player.util; let root = player.root\n // player.config.autoplay = false\n let whitelist = player.config.whitelist\n let pass = whitelistPass(whitelist)\n player.mobilePass = pass\n let centerBtn = player.config.centerBtn ? player.config.centerBtn : {}\n let iconPath, btn, path, svg\n if (centerBtn.type === 'img') {\n btn = Player.util.createImgBtn('start', centerBtn.url.play, centerBtn.width, centerBtn.height)\n } else {\n iconPath = {\n pause: centerBtn.pausePath ? centerBtn.pausePath : 'M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z',\n play: centerBtn.playPath ? centerBtn.playPath : 'M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z'\n }\n btn = util.createDom('xg-start', `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(0.04,0.04)\" d=\"${iconPath.pause}\"></path>\n </svg>`, {}, 'xgplayer-start')\n path = btn.querySelector('path')\n svg = new SVG({\n from: iconPath.play,\n to: iconPath.pause,\n progress: (shape, percent) => {\n path.setAttribute('d', svg.toSVGString(shape))\n }\n })\n }\n\n let enter = util.createDom('xg-enter', '<xg-enter-logo class=\"xgplayer-enter-logo\"></xg-enter-logo><xg-enter-tips class=\"xgplayer-enter-tips\"></xg-player-tips>', {}, 'xgplayer-enter')\n let logo = enter.querySelector('.xgplayer-enter-logo')\n root.appendChild(btn)\n root.appendChild(enter)\n let enterTips = enter.querySelector('.xgplayer-enter-tips')\n let enterLogo = new Image()\n enterLogo.onload = () => {\n enterTips.style.display = 'block'\n }\n if (player.config.enterLogo && player.config.enterLogo.url && player.config.enterLogo.width && player.config.enterLogo.height) {\n enterLogo.src = player.config.enterLogo.url\n\n logo.style.backgroundImage = `url(\"${player.config.enterLogo.url}\")`\n logo.style.width = `${player.config.enterLogo.width}px`\n logo.style.height = `${player.config.enterLogo.height}px`\n\n logo.style.backgroundSize = `${player.config.enterLogo.width}px ${player.config.enterLogo.height}px`\n logo.style.margin = `-${player.config.enterLogo.height / 2}px auto auto -${player.config.enterLogo.width / 2}px`\n\n enterTips.style.margin = `${player.config.enterLogo.height - 6}px auto auto -62px`\n } else {\n // enterLogo.src = util.getBgImage(logo)\n }\n\n if (player.config.enterTips && player.config.enterTips.background) {\n enterTips.style.background = `${player.config.enterTips.background}`\n }\n\n if (player.config.enterBg) {\n if (player.config.enterBg.url) {\n enter.style.backgroundImage = `url(\"${player.config.enterBg.url}\")`\n } else if (player.config.enterBg.color) {\n enter.style.background = player.config.enterBg.color\n }\n }\n if (player.config.autoplay) {\n player.start()\n }\n if (pass) {\n player.video.addEventListener('touchend', (e) => {\n e.preventDefault()\n if (util.hasClass(root, 'xgplayer-inactive')) {\n player.emit('focus')\n } else {\n player.emit('blur')\n }\n if (!player.config.closeVideoTouch && !player.isTouchMove) {\n if (!player.ended) {\n if (player.paused) {\n player.play()\n } else {\n player.pause()\n }\n }\n }\n })\n player.video.addEventListener('touchstart', () => {\n player.isTouchMove = false\n })\n player.video.addEventListener('touchmove', () => {\n player.isTouchMove = true\n })\n btn.addEventListener('touchend', (e) => {\n e.preventDefault()\n if (util.hasClass(root, 'xgplayer-nostart')) {\n util.removeClass(root, 'xgplayer-nostart')\n util.addClass(root, 'xgplayer-is-enter')\n util.on(player, 'canplay', () => {\n player.play()\n util.removeClass(root, 'xgplayer-is-enter')\n }, 'destroy')\n util.once(player, 'playing', () => {\n util.removeClass(root, 'xgplayer-is-enter')\n })\n if(player.root.querySelector('video')) {\n player.play()\n } else {\n player.start()\n }\n } else {\n if (player.paused) {\n player.play()\n } else {\n player.pause()\n }\n }\n })\n util.on(player, 'play', () => {\n if (centerBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${centerBtn.url.pause}\")`\n } else {\n svg.reset(iconPath.play, iconPath.pause)\n }\n }, 'destroy')\n util.on(player, 'pause', () => {\n if (centerBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${centerBtn.url.play}\")`\n } else {\n svg.reset(iconPath.pause, iconPath.play)\n }\n }, 'destroy')\n } else {\n util.addClass(root, 'xgplayer-mobile-npassed')\n util.once(player, 'ready', () => {\n player.video.controls = player.config.controls\n player.video.controlsList = player.config.controlsList.join(' ')\n if (player.config.poster) {\n player.video.poster = player.config.poster\n }\n })\n }\n if (player.config.debug) {\n debug(player.config.debug)\n }\n}\n\nexport default {\n name: 'mobile',\n method: mobile\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!./mobile.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!./mobile.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!./mobile.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-mobile .xgplayer-progress-btn{display:block}.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer{height:3px;margin-top:8.5px}.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-dot{height:3px}.xgplayer-mobile.xgplayer-ended .xgplayer-start,.xgplayer-mobile.xgplayer-ended .xgplayer-start-img,.xgplayer-mobile.xgplayer-inactive .xgplayer-start,.xgplayer-mobile.xgplayer-inactive .xgplayer-start-img{display:none}.xgplayer-mobile .xgplayer-start{width:60px;height:60px;line-height:60px;display:none;margin:-50px auto auto -30px}.xgplayer-mobile .xgplayer-start svg{margin:10px}.xgplayer-mobile .xgplayer-start-img{display:none}.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-mobile.xgplayer-nostart .xgplayer-start{margin:-30px auto auto -30px;display:block}.xgplayer-mobile.xgplayer-nostart .xgplayer-start-img{display:block}.xgplayer-mobile .xgplayer-loading{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.xgplayer-mobile.xgplayer-mobile-npassed .xgplayer-controls,.xgplayer-mobile.xgplayer-mobile-npassed .xgplayer-poster,.xgplayer-mobile.xgplayer-mobile-npassed .xgplayer-start,.xgplayer-mobile.xgplayer-mobile-npassed .xgplayer-start-img{display:none}\", \"\"]);\n\n// exports\n","import Player from '../player'\n\nlet localPreview = function () {\n let player = this; let util = Player.util\n let preview = util.createDom('xg-preview', '<input type=\"file\">', {}, 'xgplayer-preview')\n let upload = preview.querySelector('input')\n if (player.config.preview && player.config.preview.uploadEl) {\n player.config.preview.uploadEl.appendChild(preview)\n upload.onchange = function () {\n player.uploadFile = upload.files[0]\n let url = URL.createObjectURL(player.uploadFile)\n if (util.hasClass(player.root, 'xgplayer-nostart')) {\n player.config.url = url\n player.start()\n } else {\n player.src = url\n player.play()\n }\n }\n }\n}\n\nexport default {\n name: 'localPreview',\n method: localPreview\n}","import Player from '../player'\nimport '../style/player/loading.scss'\n\nlet loading = function () {\n let player = this; let util = Player.util; let container = util.createDom('xg-loading', `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewbox=\"0 0 100 100\">\n <path d=\"M100,50A50,50,0,1,1,50,0\"></path>\n </svg>\n `, {}, 'xgplayer-loading')\n player.root.appendChild(container)\n}\n\nexport default {\n name: 'loading',\n method: loading\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-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:-70px auto auto -50px}.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-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-nostart .xgplayer-loading{display:none}.xgplayer-isloading .xgplayer-loading{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\n\nconst {util} = Player\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 util.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)) {\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 (state.repeat % 2 === 0 && !player.config.disableLongPress) {\n this.handlerKeyCode(state.keyCode, true)\n }\n state.repeat++\n }\n }\n\n handlerKeyCode (keyCode, isLonePress) {\n const {player, state} = this\n if (!player.config.keyShortcut || player.config.keyShortcut === 'on') {\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 if(player.ended){\n player.replay(player.config.startTimeCache || 0);\n }else{\n player.paused ? player.play() : player.pause();\n }\n }\n break\n default:\n //\n }\n }\n }\n\n seek (isBack, isLongPress) {\n const {player} = this\n if (player.isLoading || player.isSeeking || (isLongPress && this.state.repeat % 8 > 0)) {\n return\n }\n if (isBack) {\n if (player.currentTime - 10 >= 0) {\n player.seek(player.currentTime - 10)\n } else {\n player.seek(0)\n }\n } else {\n if (player.currentTime + 10 <= player.duration) {\n player.seek(player.currentTime + 10)\n } else {\n player.seek(player.duration - 1)\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 (!util.hasClass(player.root, 'xgplayer-volume-active')) {\n util.addClass(player.root, 'xgplayer-volume-active')\n }\n } else {\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n util.removeClass(player.root, 'xgplayer-volume-active')\n }, 1000)\n }\n }\n\n changeVolume (isup) {\n const {player} = this\n this.changeVolumeSlide(true)\n const volume = player.volume\n if (isup) {\n if(volume + 0.1 <= 1) {\n player.volume = volume + 0.1\n } else {\n player.volume = 1\n }\n } else {\n if(volume - 0.1 >= 0) {\n player.volume = volume - 0.1\n } else {\n player.volume = 0\n }\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 Player from '../player'\n\nlet i18n = function () {\n let player = this; let lang = {}; let util = player.constructor.util\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 }\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 }\n\n Object.defineProperty(player, 'lang', {\n get: function () {\n return lang[player.config.lang] || lang['en']\n },\n set: function (value) {\n if (util.typeOf(value) === 'Object') {\n Object.keys(value).forEach(key => {\n lang[key] = value[key]\n })\n }\n },\n configurable: true\n })\n}\n\nexport default {\n name: 'i18n',\n method: i18n\n}","import Player from '../player'\nimport '../style/player/fullscreen.scss'\n\nlet fullscreen = function () {\n let player = this; let util = Player.util\n let scale = 0.03\n let iconPath = {\n active: 'M682 342h128v84h-212v-212h84v128zM598 810v-212h212v84h-128v128h-84zM342 342v-128h84v212h-212v-84h128zM214 682v-84h212v212h-84v-128h-128z',\n default: 'M598 214h212v212h-84v-128h-128v-84zM726 726v-128h84v212h-212v-84h128zM214 426v-212h212v84h-128v128h-84zM298 598v128h128v84h-212v-212h84z'\n }\n let btn = util.createDom('xg-fullscreen', `<xg-icon class=\"xgplayer-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"${iconPath.default}\"></path>\n </svg></xg-icon>`, {}, 'xgplayer-fullscreen')\n let tipsFull = player.config.lang && player.config.lang === 'zh-cn' ? '全屏' : 'Full screen'\n let tipsExitFull = player.config.lang && player.config.lang === 'zh-cn' ? '退出全屏' : 'Exit full screen'\n let root = player.controls; let container = player.root\n let tips = util.createDom('xg-tips', tipsFull, {}, 'xgplayer-tips')\n let path = btn.querySelector('path')\n btn.appendChild(tips)\n function getFullscreen (el) {\n let cssfullscreenDom = util.findDom(player.controls, 'xg-cssfullscreen')\n if (cssfullscreenDom) {\n cssfullscreenDom.style.display = 'none'\n }\n path.setAttribute('d', iconPath.active)\n tips.textContent = tipsExitFull\n if (el.requestFullscreen) {\n el.requestFullscreen()\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen()\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen(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 util.addClass(el, 'xgplayer-fullscreen-active')\n }\n }\n function exitFullscreen (el) {\n let cssfullscreenDom = util.findDom(player.controls, 'xg-cssfullscreen')\n let cssIconPath = {\n default: 'M843.617212 67.898413 175.411567 67.898413c-61.502749 0-111.367437 49.856501-111.367437 111.367437l0 668.205645c0 61.510936 49.864688 111.367437 111.367437 111.367437L843.617212 958.838931c61.510936 0 111.367437-49.856501 111.367437-111.367437L954.984648 179.26585C954.984648 117.754914 905.12917 67.898413 843.617212 67.898413zM398.146441 736.104057c15.380292 0 27.842115 12.461823 27.842115 27.842115 0 15.379269-12.461823 27.841092-27.842115 27.841092L259.725858 791.787264c-7.785314 0-14.781658-3.217275-19.838837-8.365528-5.383614-4.577249-8.791224-11.228739-8.791224-19.475564L231.095797 624.736621c0-15.371082 12.471033-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115l-0.61603 71.426773 133.036969-133.037992 39.378869 39.378869L324.962651 736.113267 398.146441 736.104057zM419.199942 463.611943 286.162974 330.565764l0.61603 71.435982c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.371082 0-27.842115-12.461823-27.842115-27.842115L231.094774 262.791172c0-8.256034 3.40761-14.908548 8.791224-19.476587 5.057179-5.148253 12.053524-8.374738 19.838837-8.374738l138.420583 0.00921c15.380292 0 27.842115 12.461823 27.842115 27.842115s-12.461823 27.842115-27.842115 27.842115l-73.175603-0.00921 133.607974 133.607974L419.199942 463.611943zM787.932981 763.946172c0 8.247848-3.40761 14.899338-8.791224 19.475564-5.057179 5.148253-12.053524 8.365528-19.839861 8.365528L620.881314 791.787264c-15.379269 0-27.841092-12.461823-27.841092-27.841092 0-15.380292 12.461823-27.842115 27.841092-27.842115l73.185836 0.00921L560.449967 602.50427l39.378869-39.378869L732.875015 696.163393l-0.62524-71.426773c0-15.371082 12.462846-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115L787.934005 763.946172zM787.932981 402.000724c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.379269 0-27.842115-12.461823-27.842115-27.842115l0.62524-71.435982L599.828836 463.611943l-39.378869-39.378869 133.617184-133.607974-73.185836 0.00921c-15.379269 0-27.841092-12.461823-27.841092-27.842115s12.461823-27.842115 27.841092-27.842115l138.421606-0.00921c7.785314 0 14.781658 3.226484 19.839861 8.374738 5.383614 4.568039 8.791224 11.219529 8.791224 19.476587L787.934005 402.000724z'\n }\n if (cssfullscreenDom) {\n let cssfullscreentTip = util.findDom(cssfullscreenDom, 'xg-tips')\n let cssPath = cssfullscreenDom.querySelector('path')\n cssfullscreenDom.style.display = 'block'\n cssfullscreentTip.textContent = player.config.lang && player.config.lang === 'zh-cn' ? '样式全屏' : 'Full screen'\n cssPath.setAttribute('d', cssIconPath.default)\n }\n util.removeClass(el, 'xgplayer-cssfullscreen-active')\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\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 } else {\n util.removeClass(el, 'xgplayer-fullscreen-active')\n }\n }\n function getRotateFullscreen () {\n path.setAttribute('d', iconPath.active)\n tips.textContent = tipsExitFull\n\n document.documentElement.style.width = '100%'\n document.documentElement.style.height = '100%'\n if (container && !util.hasClass(container, 'xgplayer-rotate-fullscreen')) {\n util.addClass(container, 'xgplayer-rotate-fullscreen')\n }\n player.emit('getRotateFullscreen')\n }\n function exitRotateFullscreen () {\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\n\n document.documentElement.style.width = 'unset'\n document.documentElement.style.height = 'unset'\n if (container && util.hasClass(container, 'xgplayer-rotate-fullscreen')) {\n util.removeClass(container, 'xgplayer-rotate-fullscreen')\n }\n player.emit('exitRotateFullscreen')\n }\n\n root.appendChild(btn);\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (player.config.rotateFullscreen) {\n if (util.hasClass(container, 'xgplayer-rotate-fullscreen')) {\n exitRotateFullscreen()\n } else {\n getRotateFullscreen()\n }\n } else {\n if (util.hasClass(container, 'xgplayer-fullscreen-active') || util.hasClass(container, 'xgplayer-is-fullscreen')) {\n exitFullscreen(container)\n } else {\n getFullscreen(container)\n }\n }\n })\n })\n player.video.addEventListener('webkitendfullscreen', () => {\n player.emit('exitFullscreen')\n path.setAttribute('d', iconPath.default)\n })\n\n function handle (e) {\n let fullscreenEl = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement\n if (fullscreenEl && fullscreenEl === container) {\n util.addClass(container, 'xgplayer-is-fullscreen')\n path.setAttribute('d', iconPath.active)\n tips.textContent = tipsExitFull\n player.emit('requestFullscreen')\n } else {\n util.removeClass(container, 'xgplayer-is-fullscreen')\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\n player.emit('exitFullscreen')\n }\n\n if (!document.fullscreenElement && !document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement) {\n let cssfullscreenDom = util.findDom(player.controls, 'xg-cssfullscreen')\n let cssIconPath = {\n default: 'M843.617212 67.898413 175.411567 67.898413c-61.502749 0-111.367437 49.856501-111.367437 111.367437l0 668.205645c0 61.510936 49.864688 111.367437 111.367437 111.367437L843.617212 958.838931c61.510936 0 111.367437-49.856501 111.367437-111.367437L954.984648 179.26585C954.984648 117.754914 905.12917 67.898413 843.617212 67.898413zM398.146441 736.104057c15.380292 0 27.842115 12.461823 27.842115 27.842115 0 15.379269-12.461823 27.841092-27.842115 27.841092L259.725858 791.787264c-7.785314 0-14.781658-3.217275-19.838837-8.365528-5.383614-4.577249-8.791224-11.228739-8.791224-19.475564L231.095797 624.736621c0-15.371082 12.471033-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115l-0.61603 71.426773 133.036969-133.037992 39.378869 39.378869L324.962651 736.113267 398.146441 736.104057zM419.199942 463.611943 286.162974 330.565764l0.61603 71.435982c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.371082 0-27.842115-12.461823-27.842115-27.842115L231.094774 262.791172c0-8.256034 3.40761-14.908548 8.791224-19.476587 5.057179-5.148253 12.053524-8.374738 19.838837-8.374738l138.420583 0.00921c15.380292 0 27.842115 12.461823 27.842115 27.842115s-12.461823 27.842115-27.842115 27.842115l-73.175603-0.00921 133.607974 133.607974L419.199942 463.611943zM787.932981 763.946172c0 8.247848-3.40761 14.899338-8.791224 19.475564-5.057179 5.148253-12.053524 8.365528-19.839861 8.365528L620.881314 791.787264c-15.379269 0-27.841092-12.461823-27.841092-27.841092 0-15.380292 12.461823-27.842115 27.841092-27.842115l73.185836 0.00921L560.449967 602.50427l39.378869-39.378869L732.875015 696.163393l-0.62524-71.426773c0-15.371082 12.462846-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115L787.934005 763.946172zM787.932981 402.000724c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.379269 0-27.842115-12.461823-27.842115-27.842115l0.62524-71.435982L599.828836 463.611943l-39.378869-39.378869 133.617184-133.607974-73.185836 0.00921c-15.379269 0-27.841092-12.461823-27.841092-27.842115s12.461823-27.842115 27.841092-27.842115l138.421606-0.00921c7.785314 0 14.781658 3.226484 19.839861 8.374738 5.383614 4.568039 8.791224 11.219529 8.791224 19.476587L787.934005 402.000724z'\n }\n if (cssfullscreenDom) {\n let cssfullscreentTip = util.findDom(cssfullscreenDom, 'xg-tips')\n let cssPath = cssfullscreenDom.querySelector('path')\n cssfullscreenDom.style.display = 'block'\n cssfullscreentTip.textContent = player.config.lang && player.config.lang === 'zh-cn' ? '样式全屏' : 'Full screen'\n cssPath.setAttribute('d', cssIconPath.default)\n }\n util.removeClass(container, 'xgplayer-cssfullscreen-active')\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\n util.removeClass(container, 'xgplayer-fullscreen-active')\n }\n }\n\n btn.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n tips.style.left = '50%'\n let rect = tips.getBoundingClientRect()\n let rootRect = container.getBoundingClientRect()\n if (rect.right > rootRect.right) {\n tips.style.left = `${-rect.right + rootRect.right + 16}px`\n }\n });\n\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.addEventListener(item, handle)\n })\n\n function destroyFunc () {\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.removeEventListener(item, handle)\n })\n }\n util.once(player, 'destroy', destroyFunc)\n}\n\nexport default {\n name: 'fullscreen',\n method: fullscreen\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-fullscreen{-webkit-order:12;-moz-box-ordinal-group:13;order:12;position:relative;display:inline-block;cursor:pointer}.xgplayer-fullscreen .xgplayer-icon{margin:4px -4px 0 0}.xgplayer-fullscreen:hover .xgplayer-tips{display:block}.xgplayer.xgplayer-fullscreen-active{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}\", \"\"]);\n\n// exports\n","import Player from '../player'\n\nlet flex = function () {\n let player = this; let util = Player.util\n let playceholder = util.createDom('xg-placeholder', '', {}, 'xgplayer-placeholder')\n player.controls.appendChild(playceholder)\n}\n\nexport default {\n name: '__flex__',\n method: flex\n}","import Player from '../player'\nimport '../style/player/error.scss'\n\nlet error = function () {\n let player = this; let util = Player.util; let error = util.createDom('xg-error', '<em class=\"xgplayer-error-text\">请<span class=\"xgplayer-error-refresh\">刷新</span>试试</em>', {}, 'xgplayer-error')\n player.root.appendChild(error)\n let text = error.querySelector('.xgplayer-error-text')\n let refresh = null\n\n function errorFunc () {\n // player.controls.style.display = 'none'\n if (player.error) {\n text.innerHTML = player.error\n } else {\n if (player.config.lang && player.config.lang === 'zh-cn') {\n text.innerHTML = `${player.lang.ERROR},请<span class=\"xgplayer-error-refresh\">刷新</span>试试`\n } else {\n text.innerHTML = `${player.lang.ERROR},please try to <span class=\"xgplayer-error-refresh\">refresh</span>`\n }\n }\n\n util.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 let p = e.target || e.srcElement\n if (p && p.tagName.toLocaleLowerCase() === 'span') {\n player.controls.style.display = 'flex'\n player.reload()\n }\n })\n })\n }\n }\n util.on(player, 'error', errorFunc, 'destroy')\n}\n\nexport default {\n name: 'error',\n method: error\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-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1200;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-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-is-error .xgplayer-error{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport {getAbsoluteURL} from '../utils/url'\nimport downloadUtil from 'downloadjs'\nimport '../style/player/download.scss'\n\nconst download = function () {\n const player = this\n if (!this.config.download) { return }\n let container = player.root\n let util = Player.util\n let downloadEl = util.createDom('xgplayer-download', `<xg-icon class=\"xgplayer-download-img\"></xg-icon>`, {}, 'xgplayer-download')\n\n let root = player.controls\n root.appendChild(downloadEl)\n\n let tipsDownload = player.config.lang && player.config.lang === 'zh-cn' ? '下载' : 'Download'\n let tips = util.createDom('xg-tips', tipsDownload, {}, 'xgplayer-tips')\n downloadEl.appendChild(tips)\n\n player.download = function() {\n const url = getAbsoluteURL(player.config.url)\n downloadUtil(url)\n }\n downloadEl.addEventListener('click', (e) => {\n e.stopPropagation()\n // must pass an absolute url for download\n player.download();\n })\n\n downloadEl.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n tips.style.left = '50%'\n let rect = tips.getBoundingClientRect()\n let rootRect = container.getBoundingClientRect()\n if (rect.right > rootRect.right) {\n tips.style.left = `${-rect.right + rootRect.right + 16}px`\n }\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","//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","\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-download{position:relative;width:36px;height:40px;-webkit-order:8;-moz-box-ordinal-group:9;order:8;cursor:pointer}.xgplayer-inactive .xgplayer-download,.xgplayer-nostart .xgplayer-download{display:none}.xgplayer-download:hover .xgplayer-tips{display:block}.xgplayer-download-img{display:inline-block;width:24px;height:24px;margin-top:7px!important;margin-left:4px!important;background:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23FFF' fill-rule='evenodd'%3E%3Crect x='11' y='4' width='2' height='12' rx='1'/%3E%3Crect x='3' y='18' width='18' height='2' rx='1'/%3E%3Crect transform='rotate(90 4 17.5)' x='1.5' y='16.5' width='5' height='2' rx='1'/%3E%3Crect transform='rotate(90 20 17.5)' x='17.5' y='16.5' width='5' height='2' rx='1'/%3E%3Cpath d='M11.988 14.3l-4.243-4.242a1 1 0 0 0-1.414 1.414l4.95 4.95a1 1 0 0 0 1.414 0l4.95-4.95a1 1 0 1 0-1.414-1.414L11.988 14.3z'/%3E%3C/g%3E%3C/svg%3E\\\") no-repeat 50%/100% 100%}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/definition.scss'\n\nlet definition = function () {\n let player = this; let util = Player.util; let sniffer = Player.sniffer\n let ul = util.createDom('xg-definition', '', {tabindex: 3}, 'xgplayer-definition'); let root = player.controls\n if (sniffer.device === 'mobile') {\n player.config.definitionActive = 'click'\n }\n function canplayDefiFunc () {\n let list = player.definitionList\n let tmp = ['<ul>']; let src = player.config.url; let 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 ? 'definition' : ''}'>${item.name}</li>`)\n } else {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${a.href === src ? 'definition' : ''}'>${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 util.addClass(player.root, 'xgplayer-definition-active')\n urlInRoot.focus()\n })\n }\n } else {\n ul.innerHTML = tmp.join('')\n let cur = ul.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(player.root, 'xgplayer-definition-active')\n ul.focus()\n })\n }\n root.appendChild(ul)\n }\n }\n function resourceReadyFunc (list) {\n player.definitionList = list\n if (list && list instanceof Array && list.length > 1) {\n util.addClass(player.root, 'xgplayer-is-definition')\n util.once(player, 'canplay', canplayDefiFunc, 'destroy')\n }\n }\n util.on(player, 'resourceReady', resourceReadyFunc, 'destroy');\n\n ['touchend', 'click'].forEach(item => {\n ul.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let list = player.definitionList\n let li = e.target || e.srcElement; let a = document.createElement('a')\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n let from = ''\n let to = li.getAttribute('cname')\n player.emit('beforeDefinitionChange', a.href)\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if (util.hasClass(item, 'definition')) {\n from = item.getAttribute('cname')\n util.removeClass(item, 'definition')\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 util.addClass(li, 'definition')\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}`\n a.href = li.getAttribute('url')\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 let curTime = player.currentTime; let paused = player.paused\n if (!player.ended) {\n player.src = a.href\n util.once(player, 'canplay', () => {\n player.currentTime = curTime\n if (!paused) {\n player.play()\n }\n })\n }\n }\n }\n player.emit('definitionChange', {from, to})\n if (sniffer.device === 'mobile') {\n util.removeClass(player.root, 'xgplayer-definition-active')\n }\n } else if (player.config.definitionActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n util.addClass(player.root, 'xgplayer-definition-active')\n ul.focus()\n }\n player.emit('focus')\n }, false)\n })\n\n ul.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-definition-active')\n })\n}\n\nexport default {\n name: 'definition',\n method: definition\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-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;margin-bottom:11px}.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.xgplayer-definition-active .xgplayer-definition ul{display:block}.xgplayer-definition ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-definition ul li.definition,.xgplayer-definition ul li:hover{color:#fff;opacity:1}.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-is-definition .xgplayer-definition{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport DanmuJs from 'danmu.js'\nimport util from '../utils/util'\nimport '../style/player/bullet.scss'\n\nlet danmu = function () {\n let player = this\n if (player.config.danmu) {\n let container = Player.util.createDom('xg-bullet', '', {}, 'xgplayer-bullet')\n player.root.appendChild(container)\n container.style.height = '100%'\n let config = Player.util.deepCopy({\n container,\n // containerStyle: {\n // zIndex: 9\n // },\n player: player.video,\n comments: [],\n area: {\n start: 0,\n end: 1\n }\n }, player.config.danmu)\n\n let onComplete = () => {\n let danmujs = new DanmuJs(config)\n Player.util.addClass(container, 'xgplayer-has-bullet')\n\n if (!player.config.danmu.closeDefaultBtn) {\n player.bulletBtn = Player.util.copyDom(danmujs.bulletBtn.createSwitch(true))\n player.controls.appendChild(player.bulletBtn);\n\n ['click', 'touchend'].forEach(item => {\n player.bulletBtn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n Player.util.toggleClass(player.bulletBtn, 'danmu-switch-active')\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n Player.util.addClass(container, 'xgplayer-has-bullet')\n util.once(player, 'timeupdate', () => {\n danmujs.start()\n })\n } else {\n Player.util.removeClass(container, 'xgplayer-has-bullet')\n danmujs.stop()\n }\n }, false)\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 let onWaiting = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.pause()\n }\n }\n util.on(player, 'waiting', onWaiting, 'destroy')\n\n let onPause = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.pause()\n }\n }\n util.on(player, 'pause', onPause, 'destroy')\n\n let onPlay = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.play()\n }\n }\n util.on(player, 'play', onPlay, 'destroy')\n\n let onPlaying = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.play()\n }\n }\n util.on(player, 'playing', onPlaying, 'destroy')\n\n let onSeeked = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.stop()\n danmujs.start()\n }\n }\n util.on(player, 'seeked', onSeeked, 'destroy')\n\n util.once(danmujs, 'destroy', () => {\n player.off('waiting', onWaiting)\n player.off('pause', onPause)\n player.off('play', onPlay)\n player.off('playing', onPlaying)\n player.off('seeked', onSeeked)\n })\n }\n\n player.danmu = danmujs\n player.emit('initDefaultDanmu', danmujs)\n }\n util.once(player, 'complete', onComplete)\n }\n}\n\nexport default {\n name: 'danmu',\n method: danmu\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,i.reuseDOM=!0;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)if(e.config.disableCopyDOM)a=n.el,i.reuseDOM=!1;else{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.reuseDOM&&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.options.el&&1===this.options.el.nodeType&&this.danmu.config.disableCopyDOM&&r.default.style(this.options.el,\"transform\",\"none\"),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.6.1\"}')},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","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!./bullet.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!./bullet.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!./bullet.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, \".danmu-switch{-webkit-order:6;-moz-box-ordinal-group:7;order:6;z-index:26;margin:10px auto}.xgplayer-bullet{display:none;position:absolute;top:0;left:0;right:0;height:100%;overflow:hidden;z-index:9;outline:none}.xgplayer-bullet>*{position:absolute;white-space:nowrap;z-index:9}.xgplayer-has-bullet{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/cssFullscreen.scss'\n\nlet cssFullscreen = function () {\n let player = this; let util = Player.util\n let scale = 0.03\n if (!player.config.cssFullscreen) {\n return\n }\n let iconPath = {\n active: 'M834.56 81.92H189.44c-59.392 0-107.52 48.128-107.52 107.52v645.12c0 59.392 48.128 107.52 107.52 107.52h645.12c59.392 0 107.52-48.128 107.52-107.52V189.44c0-59.392-48.128-107.52-107.52-107.52zM458.24 727.04c0 14.848-12.288 26.624-26.624 26.624S404.48 741.888 404.48 727.04v-69.632L289.28 773.12c-10.752 10.24-27.648 10.24-37.888 0-10.24-10.752-10.24-27.648 0-37.888L366.592 619.52H296.96c-14.848 0-26.624-12.288-26.624-26.624s12.288-26.624 26.624-26.624h134.144c14.848 0 26.624 12.288 26.624 26.624V727.04z m0-295.936c0 14.848-12.288 26.624-26.624 26.624H296.96c-14.848 0-26.624-12.288-26.624-26.624S282.112 404.48 296.96 404.48h69.632L251.392 289.28c-10.24-10.752-10.24-27.648 0-37.888 5.12-5.12 12.288-7.68 18.944-7.68 6.656 0 13.824 2.56 18.944 7.68L404.48 366.592V296.96c0-14.848 12.288-26.624 26.624-26.624s26.624 12.288 26.624 26.624v134.144zM773.12 773.12c-10.752 10.24-27.648 10.24-37.888 0L619.52 657.408V727.04c0 14.848-12.288 26.624-26.624 26.624s-26.624-11.776-26.624-26.624v-134.144c0-14.848 12.288-26.624 26.624-26.624H727.04c14.848 0 26.624 12.288 26.624 26.624s-12.288 26.624-26.624 26.624h-69.632l115.2 115.2c10.752 10.752 10.752 27.648 0.512 38.4z m0-483.84L657.408 404.48H727.04c14.848 0 26.624 12.288 26.624 26.624 0 14.848-12.288 26.624-26.624 26.624h-134.144c-14.848 0-26.624-12.288-26.624-26.624V296.96c0-14.848 12.288-26.624 26.624-26.624s26.624 12.288 26.624 26.624v69.632L734.72 250.88c5.12-5.12 12.288-7.68 18.944-7.68s13.824 2.56 18.944 7.68c10.752 10.752 10.752 27.648 0.512 38.4z',\n default: 'M843.617212 67.898413 175.411567 67.898413c-61.502749 0-111.367437 49.856501-111.367437 111.367437l0 668.205645c0 61.510936 49.864688 111.367437 111.367437 111.367437L843.617212 958.838931c61.510936 0 111.367437-49.856501 111.367437-111.367437L954.984648 179.26585C954.984648 117.754914 905.12917 67.898413 843.617212 67.898413zM398.146441 736.104057c15.380292 0 27.842115 12.461823 27.842115 27.842115 0 15.379269-12.461823 27.841092-27.842115 27.841092L259.725858 791.787264c-7.785314 0-14.781658-3.217275-19.838837-8.365528-5.383614-4.577249-8.791224-11.228739-8.791224-19.475564L231.095797 624.736621c0-15.371082 12.471033-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115l-0.61603 71.426773 133.036969-133.037992 39.378869 39.378869L324.962651 736.113267 398.146441 736.104057zM419.199942 463.611943 286.162974 330.565764l0.61603 71.435982c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.371082 0-27.842115-12.461823-27.842115-27.842115L231.094774 262.791172c0-8.256034 3.40761-14.908548 8.791224-19.476587 5.057179-5.148253 12.053524-8.374738 19.838837-8.374738l138.420583 0.00921c15.380292 0 27.842115 12.461823 27.842115 27.842115s-12.461823 27.842115-27.842115 27.842115l-73.175603-0.00921 133.607974 133.607974L419.199942 463.611943zM787.932981 763.946172c0 8.247848-3.40761 14.899338-8.791224 19.475564-5.057179 5.148253-12.053524 8.365528-19.839861 8.365528L620.881314 791.787264c-15.379269 0-27.841092-12.461823-27.841092-27.841092 0-15.380292 12.461823-27.842115 27.841092-27.842115l73.185836 0.00921L560.449967 602.50427l39.378869-39.378869L732.875015 696.163393l-0.62524-71.426773c0-15.371082 12.462846-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115L787.934005 763.946172zM787.932981 402.000724c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.379269 0-27.842115-12.461823-27.842115-27.842115l0.62524-71.435982L599.828836 463.611943l-39.378869-39.378869 133.617184-133.607974-73.185836 0.00921c-15.379269 0-27.841092-12.461823-27.841092-27.842115s12.461823-27.842115 27.841092-27.842115l138.421606-0.00921c7.785314 0 14.781658 3.226484 19.839861 8.374738 5.383614 4.568039 8.791224 11.219529 8.791224 19.476587L787.934005 402.000724z'\n }\n let btn = util.createDom('xg-cssfullscreen', `<xg-icon class=\"xgplayer-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"${iconPath.default}\"></path>\n </svg></xg-icon>`, {}, 'xgplayer-cssfullscreen')\n let tipsFull = player.config.lang && player.config.lang === 'zh-cn' ? '样式全屏' : 'Full screen'\n let tipsExitFull = player.config.lang && player.config.lang === 'zh-cn' ? '退出全屏' : 'Exit full screen'\n let root = player.controls; let container = player.root\n let tips = util.createDom('xg-tips', tipsFull, {}, 'xgplayer-tips')\n let path = btn.querySelector('path')\n btn.appendChild(tips)\n let getFullscreen = function (el) {\n path.setAttribute('d', iconPath.active)\n tips.textContent = tipsExitFull\n util.addClass(el, 'xgplayer-cssfullscreen-active')\n }\n let exitFullscreen = function (el) {\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\n util.removeClass(el, 'xgplayer-cssfullscreen-active')\n }\n root.appendChild(btn);\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (util.hasClass(container, 'xgplayer-cssfullscreen-active') || util.hasClass(container, 'xgplayer-is-fullscreen')) {\n exitFullscreen(container)\n } else {\n getFullscreen(container)\n }\n })\n })\n\n btn.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n tips.style.left = '50%'\n let rect = tips.getBoundingClientRect()\n let rootRect = container.getBoundingClientRect()\n if (rect.right > rootRect.right) {\n tips.style.left = `${-rect.right + rootRect.right + 16}px`\n }\n });\n}\n\nexport default {\n name: 'cssFullscreen',\n method: cssFullscreen\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-cssfullscreen{-webkit-order:11;-moz-box-ordinal-group:12;order:11;position:relative;display:inline-block;cursor:pointer;left:6px}.xgplayer-cssfullscreen .xgplayer-icon{margin:4px -4px 0 0}.xgplayer-cssfullscreen:hover .xgplayer-tips{display:block}.xgplayer.xgplayer-cssfullscreen-active{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}\", \"\"]);\n\n// exports\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack://PlayerControls/webpack/bootstrap","webpack://PlayerControls/./src/player.js","webpack://PlayerControls/./node_modules/css-loader/lib/css-base.js","webpack://PlayerControls/./node_modules/style-loader/lib/addStyles.js","webpack://PlayerControls/./node_modules/es5-ext/object/is-value.js","webpack://PlayerControls/./src/utils/util.js","webpack://PlayerControls/./src/utils/svg.js","webpack://PlayerControls/./node_modules/type/value/is.js","webpack://PlayerControls/./src/utils/intervalTimer.js","webpack://PlayerControls/./src/utils/xgplayerTimeRange.js","webpack://PlayerControls/./src/error.js","webpack://PlayerControls/./src/utils/sniffer.js","webpack://PlayerControls/./src/controls.js","webpack://PlayerControls/./src/control/volume.js","webpack://PlayerControls/./src/proxy.js","webpack://PlayerControls/./node_modules/event-emitter/index.js","webpack://PlayerControls/./node_modules/d/index.js","webpack://PlayerControls/./node_modules/type/plain-function/is.js","webpack://PlayerControls/./node_modules/type/function/is.js","webpack://PlayerControls/./node_modules/type/prototype/is.js","webpack://PlayerControls/./node_modules/type/object/is.js","webpack://PlayerControls/./node_modules/es5-ext/object/assign/index.js","webpack://PlayerControls/./node_modules/es5-ext/object/assign/is-implemented.js","webpack://PlayerControls/./node_modules/es5-ext/object/assign/shim.js","webpack://PlayerControls/./node_modules/es5-ext/object/keys/index.js","webpack://PlayerControls/./node_modules/es5-ext/object/keys/is-implemented.js","webpack://PlayerControls/./node_modules/es5-ext/object/keys/shim.js","webpack://PlayerControls/./node_modules/es5-ext/function/noop.js","webpack://PlayerControls/./node_modules/es5-ext/object/valid-value.js","webpack://PlayerControls/./node_modules/es5-ext/object/normalize-options.js","webpack://PlayerControls/./node_modules/es5-ext/string/#/contains/index.js","webpack://PlayerControls/./node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://PlayerControls/./node_modules/es5-ext/string/#/contains/shim.js","webpack://PlayerControls/./node_modules/es5-ext/object/valid-callable.js","webpack://PlayerControls/./src/utils/database.js","webpack://PlayerControls/./node_modules/draggabilly/draggabilly.js","webpack://PlayerControls/./node_modules/get-size/get-size.js","webpack://PlayerControls/./node_modules/unidragger/unidragger.js","webpack://PlayerControls/./node_modules/unipointer/unipointer.js","webpack://PlayerControls/./node_modules/ev-emitter/ev-emitter.js","webpack://PlayerControls/./src/style/index.scss?6a19","webpack://PlayerControls/./src/style/index.scss","webpack://PlayerControls/./node_modules/style-loader/lib/urls.js","webpack://PlayerControls/./src/playerEvents.js","webpack://PlayerControls/./src/style/player/volume.scss?3a77","webpack://PlayerControls/./src/style/player/volume.scss","webpack://PlayerControls/./node_modules/pasition/dist/pasition.js","webpack://PlayerControls/./src/utils/animation.js","webpack://PlayerControls/./src/control/time.js","webpack://PlayerControls/./src/style/player/time.scss?339b","webpack://PlayerControls/./src/style/player/time.scss","webpack://PlayerControls/./src/control/textTrack.js","webpack://PlayerControls/./src/style/player/texttrack.scss?c249","webpack://PlayerControls/./src/style/player/texttrack.scss","webpack://PlayerControls/./src/control/screenShot.js","webpack://PlayerControls/./src/style/player/screenShot.scss?8d95","webpack://PlayerControls/./src/style/player/screenShot.scss","webpack://PlayerControls/./src/control/rotate.js","webpack://PlayerControls/./src/style/player/rotate.scss?05b8","webpack://PlayerControls/./src/style/player/rotate.scss","webpack://PlayerControls/./src/control/replay.js","webpack://PlayerControls/./src/style/player/replay.scss?3a19","webpack://PlayerControls/./src/style/player/replay.scss","webpack://PlayerControls/./src/control/progress.js","webpack://PlayerControls/./src/style/player/progress.scss?cede","webpack://PlayerControls/./src/style/player/progress.scss","webpack://PlayerControls/./src/control/poster.js","webpack://PlayerControls/./src/style/player/poster.scss?7f6c","webpack://PlayerControls/./src/style/player/poster.scss","webpack://PlayerControls/./src/control/playNext.js","webpack://PlayerControls/./src/style/player/playNext.scss?0e8c","webpack://PlayerControls/./src/style/player/playNext.scss","webpack://PlayerControls/./src/control/playbackRate.js","webpack://PlayerControls/./src/style/player/playback.scss?68a8","webpack://PlayerControls/./src/style/player/playback.scss","webpack://PlayerControls/./src/control/play.js","webpack://PlayerControls/./src/style/player/play.scss?3cfe","webpack://PlayerControls/./src/style/player/play.scss","webpack://PlayerControls/./src/control/pip.js","webpack://PlayerControls/./src/style/player/pip.scss?eb07","webpack://PlayerControls/./src/style/player/pip.scss","webpack://PlayerControls/./src/control/pc.js","webpack://PlayerControls/./src/control/mobile.js","webpack://PlayerControls/./src/style/player/mobile.scss?3ce7","webpack://PlayerControls/./src/style/player/mobile.scss","webpack://PlayerControls/./src/control/localPreview.js","webpack://PlayerControls/./src/control/loading.js","webpack://PlayerControls/./src/style/player/loading.scss?8aa9","webpack://PlayerControls/./src/style/player/loading.scss","webpack://PlayerControls/./src/control/keyboard.js","webpack://PlayerControls/./src/control/i18n.js","webpack://PlayerControls/./src/control/fullscreen.js","webpack://PlayerControls/./src/style/player/fullscreen.scss?2315","webpack://PlayerControls/./src/style/player/fullscreen.scss","webpack://PlayerControls/./src/control/flex.js","webpack://PlayerControls/./src/control/error.js","webpack://PlayerControls/./src/style/player/error.scss?b84b","webpack://PlayerControls/./src/style/player/error.scss","webpack://PlayerControls/./src/control/download.js","webpack://PlayerControls/./src/utils/url.js","webpack://PlayerControls/./node_modules/downloadjs/download.js","webpack://PlayerControls/./src/style/player/download.scss?e7b4","webpack://PlayerControls/./src/style/player/download.scss","webpack://PlayerControls/./src/control/definition.js","webpack://PlayerControls/./src/style/player/definition.scss?f0d7","webpack://PlayerControls/./src/style/player/definition.scss","webpack://PlayerControls/./src/control/danmu.js","webpack://PlayerControls/./node_modules/danmu.js/dist/index.js","webpack://PlayerControls/(webpack)/buildin/module.js","webpack://PlayerControls/./src/style/player/bullet.scss?31db","webpack://PlayerControls/./src/style/player/bullet.scss","webpack://PlayerControls/./src/control/cssFullscreen.js","webpack://PlayerControls/./src/style/player/cssFullscreen.scss?12da","webpack://PlayerControls/./src/style/player/cssFullscreen.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","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","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","Player","options","self","config","util","deepCopy","width","height","ignores","whitelist","lang","document","documentElement","getAttribute","navigator","language","toLocaleLowerCase","inactive","volume","controls","controlsList","version","userTimer","waitTimer","database","Database","history","isProgressMoving","root","findDom","id","createDom","unselectable","onselectstart","el","nodeType","emit","Errors","vid","line","handle","msg","addClass","sniffer","device","appendChild","fluid","style","video","execBeforePluginsCall","forEach","item","controlStyle","typeOf","window","fetch","method","headers","Accept","then","res","ok","json","obj","prop","pluginsCall","catch","err","console","log","controlPlugins","controlsRun","ev","evName","keys","evFunc","on","charAt","toUpperCase","slice","player","mousemoveFunc","closeFocusVideoFocus","focus","addEventListener","playFunc","closePlayVideoFocus","once","setTimeout","videoInit","hasClass","start","removeEventListener","Proxy","isSupportMP4","url","this","canPlayFunc","playPromise","play","undefined","removeClass","e","setMediaSrc","indexOf","src","length","type","autoplay","load","querySelector","insertBefore","firstChild","beforeStartRun","time","ended","replay","currentTime","reloadFunc","isDelDom","k","clearInterval","bulletResizeTimer","_interval","destroyFunc","removeAttribute","innerHTML","className","off","danmu","destroy","clearTimeout","sliderTimer","paused","pause","_replay","Function","plugins","descriptor","some","ro","getBoundingClientRect","Top","top","Left","left","dragLay","dragHandle","tabindex","Draggabilly","right","bottom","preventDefault","stopPropagation","exitPIP","isLoading","isSeeking","checkBuffer","_handleResumeFromWating","clearWaitTimer","_hasStart","onWaiting","PLAYER_EVENTS","PLAYER_WAITING","PLAYER_RESUME","buffered","len","end","controlLst","context","control","IntervalTimer","XgplayerTimeRange","useSourceMap","list","toString","map","content","cssWithMappingToString","cssMapping","btoa","sourceMapping","toComment","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","join","mediaQuery","alreadyImportedModules","push","stylesInDom","isOldIE","fn","memo","apply","arguments","memoize","all","atob","getElement","target","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","j","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","before","removeStyleElement","idx","parentNode","removeChild","splice","createStyleElement","createElement","attrs","addAttrs","setAttribute","result","styleIndex","update","remove","transform","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","createLinkElement","link","rel","updateLink","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","href","applyToTag","styleSheet","cssText","createTextNode","updateStyle","newObj","DEBUG","newList","mayRemove","replaceText","textStore","index","replacement","filter","Boolean","cssNode","childNodes","_undefined","require","val","tpl","cname","dom","classList","Array","match","RegExp","replace","split","add","reg","sel","startsWith","getElementById","str","pad","charstr","String","maxlen","Math","ceil","chars","substring","isNaN","hour","padStart","floor","minute","second","touch","touches","changedTouches","clientX","clientY","offsetX","pageX","offsetLeft","offsetY","pageY","offsetTop","_target","srcElement","dst","Node","currentStyle","getComputedStyle","backgroundImage","a","back","tagName","attributes","node","eventName","intervalFunc","frequency","setInterval","imgUrl","w","h","unit","btn","every","parseFloat","trim","backgroundSize","margin","hex","alpha","rgb","sixHex","test","kw","eval","ua","userAgent","toLowerCase","browser","exec","appVersion","isChrome","isTrident","isSupport","mime","canPlayType","webkitDecodedFrameCount","webkitDroppedFrameCount","frameRateInterval","currentFrameRate","currentDecodedFrameCount","frameRateTimer","clear","repeat","currentDroppedFrameCount","event","offEvent","onDestroy","offInDestroy","_fn","data","vbuffered","maxHoleDuration","sort","b","diff","buffered_2","buf2end","buf2len","SVG","from","to","easing","duration","curPath","progress","state","beginTime","Date","outShape","pathA","path2shapes","pathB","pathArr","_preprocessing","tick","dt","cancelAnimationFrame","tickId","percent","_lerp","requestAnimationFrame","shapes","shape","point","unshift","animate","stop","tmp","pasition","timeID","func","ms","bufferedList","ErrorTypes","network","code","remark","mse","parse","format","decoder","runtime","timeout","other","networkState","readyState","currentSrc","errd","playerVersion","errorType","ex","domain","os","isPc","ie","firfox","chrome","opera","safari","isWindowsPhone","isSymbian","isAndroid","isFireFox","isTablet","isPhone","Controls","scale","autoplayMuted","canplayVolFunc","iconPath","v2s","curIocnPath","defaultPath","container","containerHeight","slider","bar","selected","icon","path","svg","_changeTimer","volumePath","pathVolume","svgVolume","muted","small","large","vol","querySelectorAll","_p","toSVGString","barRect","pos","isMove","onMove","now","max","min","onUp","volumechangeFunc","reset","_seekingTimer","videoConfig","playsinline","airplay","mediaType","loop","crossorigin","textTrackDom","textTrack","isArray","track","label","default","kind","srclang","textTrackStyle","styleStr","wrap","sheet","insertRule","addRule","XgVideoProxy","constructor","lastBuffer","evItem","hasStart","inWaitingStart","getTime","_onError","curBuffer","error","message","errorCode","range","bool","isTrue","getBuffered2","crossOrigin","isFinite","defaultMuted","status","en","cn","playbackRate","rate","played","preload","seekable","seeking","location","callable","defineProperties","configurable","writable","listener","__ee__","__eeOnceListener__","listeners","candidate","args","methods","descriptors","isValue","isPlainFunction","assign","normalizeOpts","contains","dscr","desc","gs","set","isFunction","classRe","functionToString","isPrototype","isObject","possibleTypes","foo","trzy","dest","TypeError","opts1","process","searchString","INDEXDB","mydb","db","ojstore","keypath","indexedDB","webkitindexedDB","IDBKeyRange","webkitIDBKeyRange","myDB","callback","request","open","onerror","onsuccess","onupgradeneeded","transaction","objectStoreNames","createObjectStore","keyPath","deleteDatabase","close","storename","store","objectStore","put","delete","define","getSize","Unidragger","factory","extend","noop","jQuery","element","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","applyGrid","grid","position","_getPosition","startPoint","x","y","dragPoint","startPosition","onPointerMove","onPointerUp","enable","setHandles","handles","bindHandles","dispatchEvent","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","Event","trigger","_getPositionCoord","_addTransformPosition","styleSide","measure","parentSize","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","pointerDown","isOkay","okayPointerDown","isEnabled","_pointerReset","pointerDownPointer","pointerDownBlur","_bindPostStartEvents","dragStart","measureContainment","setLeftTop","getContainer","elemSize","containerSize","elemRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","isElement","HTMLElement","moveVector","dragMove","dragX","dragY","gridX","gridY","containDrag","axis","drag","dragEnd","isDragging","positionDrag","_this","animateFrame","staticClick","setPosition","disable","unbindHandles","removeData","_init","bridget","getStyleSize","num","isValid","logError","measurements","measurementsLength","getZeroSize","size","innerWidth","innerHeight","outerWidth","outerHeight","measurement","getStyle","elem","isSetup","isBoxSizeOuter","setup","div","padding","borderStyle","borderWidth","boxSizing","body","round","display","offsetWidth","offsetHeight","isBorderBox","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","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","focused","activeElement","blur","pointerMove","_dragPointerMove","_dragMove","hasDragStarted","_dragStart","abs","pointerUp","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","onclick","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","_events","onceEvents","_onceEvents","onceListeners","allOff","locals","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","mapToEllipse","_ref","rx","ry","cosphi","sinphi","centerx","centery","vectorAngle","ux","uy","vx","vy","sign","sqrt","acos","arcToBezier","_ref2","px","py","cx","cy","_ref2$xAxisRotation","xAxisRotation","_ref2$largeArcFlag","largeArcFlag","_ref2$sweepFlag","sweepFlag","curves","sin","TAU","cos","pxp","pyp","lambda","pow","_getArcCenter","getArcCenter","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","ang1","ang2","_getArcCenter2","slicedToArray","segments","approxUnitArc","tan","x1","y1","x2","y2","curve","_mapToEllipse","_mapToEllipse2","_mapToEllipse3","arr","iterator","sliceIterator","_arr","_n","_d","_e","_s","_i","next","done","PI","q","v","z","segment","number","shapeBox","minX","minY","maxX","maxY","x3","x4","y3","y4","sortCurves","curvesA","curvesB","arrList","permuteCurveNum","indexArr","distance","curveDistance","curveA","curveB","xb1","xb2","xb3","xb4","yb1","yb2","yb3","yb4","permuteNum","permute","input","permArr","usedChars","main","ch","pop","boxDistance","boxA","boxB","_split","reverse","x12","y12","x23","y23","x123","y123","x1234","y1234","sync","count","_loop","newShape","parser","_","command","parseValues","numbers","Number","lerpCurve","lerpPoints","q2b","cmds","preX","preY","current","closeX","closeY","preCX","preCY","sLen","lastCurve","action","preItem","_upCurves","_splitCurves","cs","lerp","MIM_CURVES_COUNT","lenA","lenB","clonePathA","clonePathB","newCurves","curveIndex","begin","lastTime","vendors","currTime","timeToCall","curtime","dash","endedShow","ul","textTrackActive","onCanplay","controlText","cur","urlInRoot","onEnded","trackDoms","getElementsByTagName","onPlaying","li","toggleClass","onBlur","screenShot","canvas","canvasCtx","img","getContext","Image","onload","drawImage","toDataURL","saveScreenShot","filename","saveLink","download","createEvent","initMouseEvent","rotate","tipsRotate","tips","rotateDeg","times","innerRotate","factor","clockwise","toFixed","transformOrigin","webKitTransform","rect","rootRect","centerBtn","replayPath","endedFunc","textContent","REPLAY","getPropertyValue","isRotateFullscreen","containerWidth","outer","cache","thumbnail","dotEvent","dotItem","text","dotArr","canplayProgFunc","progressDot","dot","addProgressDot","removeProgressDot","removeAllProgressDot","interval","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","tnailUrls","tnailScale","pic_num","col","row","urls","allowSeekAfterEnded","isRotate","move","btnWidth","closeMoveSeek","up","passive","seekEndPlay","compute","containerLeft","indexInPage","tnaiRowIndex","tnaiColIndex","pointWidth","leave","lastBtnLeft","handleTimeUpdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","handleCacheUpdate","poster","hiddenPoster","playNext","controlEl","nextBtn","playNextBtn","urlList","createImgBtn","playbackRateActive","defaultPlaybackRate","selectedSpeed","playbackDom","onPlay","iconScale","playBtn","tipsPlay","tipsPause","enableEndedPlay","pauseFunc","pip","getPIP","pc","clk","_click_","pausePath","playPath","enter","logo","enterTips","enterLogo","onCanPlay","startAniEnd","mouseenterFunc","leavePlayerTimer","mouseleaveFunc","closePlayerBlur","leavePlayerTime","background","enterBg","color","startClc","mediaSource","onPlayBtnClick","onElementClick","closeVideoClick","onElementDblclick","fullscreen","closeVideoDblclick","initEvent","cmouseenterFunc","cmouseleaveFunc","closeControlsBlur","readyFunc","mobile","pass","whitelistPass","mobilePass","closeVideoTouch","isTouchMove","debug","port","script","h4","anonymous","async","localPreview","preview","upload","uploadEl","onchange","uploadFile","files","loading","Keyboard","isRepeat","keyCode","isBody","timer","initEvents","onBodyKeydown","onKeydown","onKeyup","keyShortcut","cancelBubble","returnValue","handler","checkTarget","handlerKeyCode","changeVolumeSlide","disableLongPress","isLonePress","changeRate","seek","changeVolume","startTimeCache","isBack","isLongPress","keyboardRate","show","isup","keyboard","i18n","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","ERROR","active","tipsFull","tipsExitFull","cssfullscreenDom","cssfullscreentTip","cssPath","fullscreenEl","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","webkitIsFullScreen","mozFullScreen","rotateFullscreen","exitRotateFullscreen","getRotateFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","getFullscreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","webkitSupportsFullscreen","webkitEnterFullscreen","msRequestFullscreen","flex","playceholder","refresh","errorFunc","reload","downloadEl","tipsDownload","getAbsoluteURL","strFileName","strMimeType","defaultMime","mimeType","payload","anchor","myBlob","MozBlob","WebKitBlob","fileName","reader","ajax","XMLHttpRequest","responseType","response","send","dataUrlToBlob","msSaveBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","decodeURIComponent","binData","uiArr","winMode","click","confirm","f","FileReader","readAsDataURL","definition","canplayDefiFunc","definitionList","switchURL","_options","_mediaDataSource","originUrl","cursrc","definitionActive","resourceReadyFunc","curRUL","curTime","comments","area","onComplete","onPause","onSeeked","danmujs","DanmuJs","closeDefaultBtn","bulletBtn","copyDom","createSwitch","formatTime","setProperty","logger","u","ReferenceError","__proto__","getPrototypeOf","setLogger","info","overlap","live","direction","needResizeObserver","hideArr","domObj","containerStyle","isReady","addResizeObserver","setPrototypeOf","addObserver","resize","unObserver","txt","opacity","fontSize","prior","realTime","readData","dataHandle","queue","pauseMove","startMove","like","setLikeDom","mouseControl","forceDuration","setFontSize","channel_id","topInit","channelSize","channel","g","function","constructorName","defaultOff","switchBtn","playedData","retryTimer","retryStatus","updateQueue","nums","dataHandleTimer","bullet","hasAttached","resetWithCb","init","channels","resized","containerPos","bulletCreateFail","detach","noDiscard","attach","addBullet","removeBullet","containerRight","resizing","resizeTimer","bookChannelId","scroll","operating","bookId","channelWidth","channelHeight","bOffset","O","M","C","E","B","T","P","S","L","D","R","resetTimer","moveV","reuseDOM","disableCopyDOM","use","eventListeners","useCapture","onChangeDirection","random","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","__handlers","ResizeObserver","observer","timeStampe","__trigger","observe","unobserve","disconnect","__runHandler","destroyObserver","hmr","webpackPolyfill","deprecate","paths","children","cssFullscreen"],"mappings":"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","file":"controls.js","sourcesContent":[" \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 = 12);\n","import Proxy from './proxy'\nimport util from './utils/util'\nimport Database from './utils/database'\nimport sniffer from './utils/sniffer'\nimport XgplayerTimeRange from './utils/xgplayerTimeRange'\nimport IntervalTimer from './utils/intervalTimer'\nimport Errors from './error'\nimport Draggabilly from 'draggabilly'\nimport './style/index.scss'\nimport {\n version\n} from '../package.json'\nimport {PLAYER_EVENTS} from './playerEvents'\nclass Player extends Proxy {\n static isSupportMP4 () {\n return util.isSupportMP4()\n }\n constructor (options) {\n super(options)\n this.config = util.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.database = new Database()\n this.history = []\n this.isProgressMoving = false\n this.root = util.findDom(document, `#${this.config.id}`)\n this.controls = util.createDom('xg-controls', '', {\n unselectable: 'on',\n onselectstart: 'return false'\n }, 'xgplayer-controls')\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('use', this.config.vid, {\n line: 32,\n handle: 'Constructor',\n msg: 'container id can\\'t be empty'\n }))\n return false\n }\n }\n // this.rootBackup = util.copyDom(this.root)\n util.addClass(this.root, `xgplayer xgplayer-${sniffer.device} xgplayer-nostart ${this.config.controls ? '' : '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 if (sniffer.device === 'pc' || options.width || options.height) {\n this.root.style.width = `${this.config.width}px`\n this.root.style.height = `${this.config.height}px`\n }\n }\n if (this.config.execBeforePluginsCall) {\n this.config.execBeforePluginsCall.forEach(item => {\n item.call(this, this)\n })\n }\n if (this.config.controlStyle && util.typeOf(this.config.controlStyle) === 'String') {\n let self = this\n window.fetch && window.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 util.on(this, evName, evFunc, 'destroy')\n }\n });\n ['focus', 'blur'].forEach(item => {\n util.on(this, item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)], 'destroy')\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 util.once(player, 'play', this.playFunc)\n\n setTimeout(() => {\n this.emit('ready')\n }, 0)\n if (this.config.videoInit) {\n if (util.hasClass(this.root, 'xgplayer-nostart')) {\n this.start()\n }\n }\n\n util.once(player, 'destroy', () => {\n player.root.removeEventListener('mousemove', player.mousemoveFunc)\n })\n }\n\n start (url = this.config.url) {\n let root = this.root\n let player = this\n if (!url) {\n this.emit('urlNull')\n }\n this.canPlayFunc = () => {\n let playPromise = player.video.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.then(function () {\n util.removeClass(player.root, 'xgplayer-nostart')\n player.emit('autoplay started')\n }).catch(function (e) {\n if (e.name === 'NotAllowedError') {\n player.emit('autoplay was prevented')\n Player.util.addClass(player.root, 'xgplayer-is-autoplay')\n } \n })\n }\n }\n const setMediaSrc = url => {\n if (util.typeOf(url) !== 'Array') {\n if (util.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 if(url && url.length > 0) {\n url.forEach(item => {\n this.video.appendChild(util.createDom('source', '', {\n src: `${item.src}`,\n type: `${item.type || ''}`\n }))\n })\n }\n if (this.config.autoplay) {\n util.on(this, 'canplay', this.canPlayFunc)\n }\n this.video.load()\n if(root && !root.querySelector('video') && this.video && this.video.nodeType === 1) {\n root.insertBefore(this.video, root.firstChild)\n }\n setTimeout(() => {\n this.emit('complete')\n }, 1)\n }\n if(typeof player.config.beforeStartRun === 'function') {\n player.config.beforeStartRun().then(() => {\n setMediaSrc(url)\n })\n } else {\n setMediaSrc(url)\n }\n }\n\n seek (time) {\n if(this.ended && typeof this.replay === 'function') {\n this.replay(time)\n } else {\n this.currentTime = time\n }\n }\n\n reload () {\n this.video.load()\n this.reloadFunc = () => {\n this.play().catch(err => {})\n }\n util.once(this, 'loadeddata', this.reloadFunc)\n }\n\n destroy (isDelDom = true) {\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.danmu) {\n this.danmu.destroy()\n }\n clearTimeout(this.userTimer)\n clearTimeout(this.waitTimer)\n clearTimeout(this.sliderTimer)\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 this.root.className = ''\n }\n for (let k in this) {\n // if (k !== 'config') {\n delete this[k]\n // }\n }\n this.off('pause', destroyFunc)\n this.emit('destroyEnd')\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 (currentTime = 0) {\n let self = this\n let _replay = this._replay\n // ie9 bugfix\n util.removeClass(this.root, 'xgplayer-ended')\n if (_replay && _replay instanceof Function) {\n _replay(currentTime)\n } else {\n this.currentTime = currentTime\n this.play().catch(err => {})\n }\n }\n\n pluginsCall () {\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 (!ignores.some(item => name === item)) {\n if (['pc', 'tablet', 'mobile'].some(type => type === name)) {\n if (name === sniffer.device) {\n setTimeout(() => {\n descriptor.call(self, self)\n }, 0)\n }\n } else {\n descriptor.call(this, this)\n }\n }\n })\n }\n }\n\n getPIP (width = 320, height = 180) {\n let ro = this.root.getBoundingClientRect()\n let Top = ro.top\n let Left = ro.left\n let dragLay = util.createDom('xg-pip-lay', '<div></div>', {}, 'xgplayer-pip-lay')\n this.root.appendChild(dragLay)\n let dragHandle = util.createDom('xg-pip-drag', '<div class=\"drag-handle\"><span>点击按住可拖动视频</span></div>', {tabindex: 9}, 'xgplayer-pip-drag')\n this.root.appendChild(dragHandle)\n let draggie = new Draggabilly('.xgplayer', {\n handle: '.drag-handle'\n })\n util.addClass(this.root, 'xgplayer-pip-active')\n\n this.root.style.width = `${width}px`\n this.root.style.height = `${height}px`\n\n this.root.style.right = 0\n this.root.style.bottom = '200px'\n this.root.style.top = ''\n this.root.style.left = ''\n if (this.config.fluid) {\n this.root.style['padding-top'] = ''\n }\n let player = this;\n ['click', 'touchstart'].forEach(item => {\n dragLay.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.exitPIP()\n player.root.style.top = `${Top}px`\n player.root.style.left = `${Left}px`\n })\n })\n }\n\n exitPIP () {\n util.removeClass(this.root, 'xgplayer-pip-active')\n this.root.style.right = ''\n this.root.style.bottom = ''\n this.root.style.top = ''\n this.root.style.left = ''\n\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\n clearWaitTimer () {\n if (!this.waitTimer) {\n return\n }\n window.clearTimeout(this.waitTimer)\n this.waitTimer = null\n }\n\n onFocus () {\n let player = this\n if(util.hasClass(this.root, 'xgplayer-inactive')) {\n player.emit('controlShow')\n }\n util.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.paused && !this.ended) {\n if(!util.hasClass(this.root, 'xgplayer-inactive')) {\n this.emit('controlHide')\n }\n util.addClass(this.root, 'xgplayer-inactive')\n }\n }\n\n onPlay () {\n util.addClass(this.root, 'xgplayer-playing')\n util.removeClass(this.root, 'xgplayer-pause')\n }\n\n onPause () {\n util.addClass(this.root, 'xgplayer-pause')\n if (this.userTimer) {\n clearTimeout(this.userTimer)\n }\n this.emit('focus')\n }\n\n onEnded () {\n util.addClass(this.root, 'xgplayer-ended')\n util.removeClass(this.root, 'xgplayer-playing')\n util.removeClass(this.root, 'xgplayer-isloading')\n }\n\n onTimeupdate () {\n // loading状态下必须有足够的播放buffer才清楚loading\n if (this.isLoading || (this.waitTimer && !this.isSeeking)) {\n if (this.checkBuffer()) {\n this._handleResumeFromWating();\n this.clearWaitTimer()\n util.removeClass(this.root, 'xgplayer-isloading')\n this.isLoading = false\n }\n }\n // 在没有开始播放且当前是暂停状态 不去除xgplayer-nostart, 兼容safari下无法自动播放但是设置了currentTime的情况\n if (!this._hasStart && this.paused) {\n util.removeClass(this.root, 'xgplayer-is-enter xgplayer-start-appear')\n } else {\n util.removeClass(this.root, 'xgplayer-is-enter xgplayer-nostart xgplayer-start-appear')\n }\n }\n\n onSeeking () {\n this.isSeeking = true\n this.onWaiting()\n }\n\n onSeeked () {\n this._handleResumeFromWating()\n this.isSeeking = false\n this.isLoading = false\n // for ie,playing trigger before waiting\n if (this.waitTimer) {\n this.clearWaitTimer()\n }\n util.removeClass(this.root, 'xgplayer-isloading')\n }\n\n onWaiting () {\n // 未开始播放且暂停状态不显示loading\n if (!this._hasStart && this.paused) {\n return\n }\n let self = this\n if (self.waitTimer) {\n this.clearWaitTimer()\n this.isLoading = false\n }\n self.waitTimer = setTimeout(function () {\n util.addClass(self.root, 'xgplayer-isloading')\n self.emit(PLAYER_EVENTS.PLAYER_WAITING)\n self.isLoading = true\n self.clearWaitTimer()\n }, 800)\n }\n\n _handleResumeFromWating(){\n if(this.isLoading){\n this.emit(PLAYER_EVENTS.PLAYER_RESUME)\n }\n }\n\n onPlaying () {\n this._handleResumeFromWating()\n this.isSeeking = false\n this.isLoading = false\n if (this.waitTimer) {\n this.clearWaitTimer()\n }\n util.removeClass(this.root, 'xgplayer-isloading xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay')\n util.addClass(this.root, 'xgplayer-playing')\n }\n\n /**\n * 检查当前缓存是否足够播放currenTime\n */\n checkBuffer () {\n const buffered = this.video.buffered\n const currentTime = this.currentTime\n const len = buffered.length\n for (let i = 0; i < len; i++) {\n if (buffered.start(i) <= currentTime && buffered.end(i) > currentTime) {\n return true\n }\n }\n return false\n }\n\n static install (name, descriptor) {\n if (!Player.plugins) {\n Player.plugins = {}\n }\n Player.plugins[name] = descriptor\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.IntervalTimer = IntervalTimer\nPlayer.sniffer = sniffer\nPlayer.Errors = Errors\nPlayer.PLAYER_EVENTS = PLAYER_EVENTS\nPlayer.XgplayerTimeRange = XgplayerTimeRange\nexport default Player\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","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","import IntervalTimer from './intervalTimer'\nimport XgplayerTimeRange from './xgplayerTimeRange'\n\nlet util = {}\n\nutil.createDom = function (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\nutil.hasClass = function (el, className) {\n if (!el) return null\n if (el.classList) {\n return Array.prototype.some.call(el.classList, item => item === className)\n } else {\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'))\n }\n}\n\nutil.addClass = function (el, className) {\n if (!el) return null\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 (!util.hasClass(el, className)) {\n el.className += ' ' + className\n }\n}\n\nutil.removeClass = function (el, className) {\n if (!el) return null\n if (el.classList) {\n className.split(/\\s+/g).forEach(item => {\n el.classList.remove(item)\n })\n } else if (util.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\nutil.toggleClass = function (el, className) {\n if (!el) return null\n className.split(/\\s+/g).forEach(item => {\n if (util.hasClass(el, item)) {\n util.removeClass(el, item)\n } else {\n util.addClass(el, item)\n }\n })\n}\n\nutil.findDom = function (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.startsWith('#')) {\n dom = el.getElementById(sel.slice(1))\n }\n }\n return dom\n}\n\nutil.padStart = function (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\nutil.format = function (time) {\n if (window.isNaN(time)) {\n return ''\n }\n let hour = util.padStart(Math.floor(time / 3600), 2, 0)\n let minute = util.padStart(Math.floor((time - hour * 3600) / 60), 2, 0)\n let second = util.padStart(Math.floor((time - hour * 3600 - minute * 60)), 2, 0)\n return (hour === '00' ? [minute, second] : [hour, minute, second]).join(':')\n}\n\nutil.event = function (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\nutil.typeOf = function (obj) {\n return Object.prototype.toString.call(obj).match(/([^\\s.*]+)(?=]$)/g)[0]\n}\n\nutil.deepCopy = function (dst, src) {\n if (util.typeOf(src) === 'Object' && util.typeOf(dst) === 'Object') {\n Object.keys(src).forEach(key => {\n if (util.typeOf(src[key]) === 'Object' && !(src[key] instanceof Node)) {\n if (!dst[key]) {\n dst[key] = src[key]\n } else {\n util.deepCopy(dst[key], src[key])\n }\n } else if (util.typeOf(src[key]) === 'Array') {\n dst[key] = util.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}\nutil.getBgImage = function (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\nutil.copyDom = function (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\nutil.setInterval = function (context, eventName, intervalFunc, frequency) {\n if (!context._interval[eventName]) {\n context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency)\n }\n}\n\nutil.clearInterval = function (context, eventName) {\n clearInterval(context._interval[eventName])\n context._interval[eventName] = null\n}\n\nutil.createImgBtn = function (name, imgUrl, width, height) {\n let btn = util.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 = parseFloat(width.slice(0, width.indexOf(item)).trim())\n h = parseFloat(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\nutil.Hex2RGBA = function (hex, alpha) {\n let rgb = [] // 定义rgb数组\n if (/^\\#[0-9A-F]{3}$/i.test(hex)) {\n let sixHex = '#'\n hex.replace(/[0-9A-F]/ig, function (kw) {\n sixHex += kw + kw\n })\n hex = sixHex\n }\n if (/^#[0-9A-F]{6}$/i.test(hex)) {\n hex.replace(/[0-9A-F]{2}/ig, function (kw) {\n rgb.push(eval('0x' + kw))\n })\n return `rgba(${rgb.join(',')}, ${alpha})`\n } else {\n return 'rgba(255, 255, 255, 0.1)'\n }\n}\n\nutil.isSupportMP4 = function () {\n const RegExp = [{\n key: 'Trident',\n reg: /(rv:)([\\d.]+)/\n },\n {\n key: 'Trident',\n reg: /(msie)\\s*([\\d.]+)/\n }, {\n key: 'Chrome',\n reg: /(chrome)\\/([\\d.]+)/\n }]\n const ua = navigator.userAgent.toLowerCase()\n let match = null\n const browser = {}\n for (const key in RegExp) {\n match = RegExp[key].reg.exec(ua)\n if (match) {\n const name = RegExp[key].key\n browser[`is${name}`] = name\n browser.name = name\n browser.appVersion = match.length > 2 ? match[2] : ''\n break\n }\n }\n\n if (!(browser.isChrome && (browser.appVersion === '77.0.3835.0' || browser.appVersion === '76.0.3790.0')) && !browser.isTrident) {\n return true\n }\n const H264_MIMETYPES = [\n 'avc1.42E01E, mp4a.40.2',\n 'avc1.58A01E, mp4a.40.2',\n 'avc1.4D401E, mp4a.40.2',\n 'avc1.64001E, mp4a.40.2',\n 'avc1.42E01E',\n 'mp4v.20.8',\n 'mp4v.20.240',\n 'avc1.42E01E, mp4a.40.2',\n 'avc1.58A01E, mp4a.40.2',\n 'avc1.4D401E, mp4a.40.2',\n 'avc1.64001E, mp4a.40.2',\n 'mp4v.20.8, mp4a.40.2',\n 'mp4v.20.240, mp4a.40.2'\n ]\n let a = document.createElement('video')\n let result = {\n isSupport: false,\n mime: ''\n }\n if (typeof a.canPlayType === 'function') {\n H264_MIMETYPES.map(key => {\n if (a.canPlayType(`video/mp4; codecs=\"${key}\"`) === 'probably') {\n result.isSupport = true\n result.mime += `||${key}`\n }\n })\n return result.isSupport\n }\n a = null\n return result.isSupport\n}\n\nutil.calcFrameRate = function (player) {\n if (!player || !player.video || player.video.webkitDecodedFrameCount === undefined || player.video.webkitDroppedFrameCount === undefined) return false\n\n let frameRateInterval = player.config.frameRateInterval || 1000\n\n player.currentFrameRate = 0\n player.currentDecodedFrameCount = 0\n\n if (player.frameRateTimer) {\n player.frameRateTimer.clear()\n player.frameRateTimer = null\n }\n\n player.frameRateTimer = new IntervalTimer()\n player.frameRateTimer.repeat(() => {\n player.currentFrameRate = (player.video.webkitDecodedFrameCount - player.currentDecodedFrameCount) / frameRateInterval * 1000\n player.currentDecodedFrameCount = player.video.webkitDecodedFrameCount\n player.currentDroppedFrameCount = player.video.webkitDroppedFrameCount\n }, frameRateInterval)\n\n function destroyFunc () {\n if (player.frameRateTimer) {\n player.frameRateTimer.clear()\n player.frameRateTimer = null\n }\n player.off('destroy', destroyFunc)\n }\n player.once('destroy', destroyFunc)\n\n return true\n}\n\nutil.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\nutil.on = (object, event, fn, offEvent) => {\n if (offEvent) {\n object.on(event, fn)\n util.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\nutil.once = (object, event, fn, offEvent) => {\n if (offEvent) {\n object.once(event, fn)\n util.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\nutil.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), 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 default util\n","import pasition from 'pasition'\nimport './animation'\nclass SVG {\n constructor (options = {}) {\n this.from = options.from\n this.to = options.to\n this.easing = options.easing || function (t) { return t * t }\n this.duration = options.duration || 150\n this.curPath = ''\n this.progress = options.progress\n this.state = 0// 0=idle,1=busy,2=break off\n }\n animate () {\n let self = this; let beginTime = new Date(); let time = self.duration\n let outShape = null\n let pathA = self.path2shapes(self.from)\n let pathB = self.path2shapes(self.to)\n let pathArr = self._preprocessing(pathA, pathB)\n self.state = 1\n let tick = () => {\n let dt = new Date() - beginTime\n if (dt >= time || self.state === 2) {\n outShape = pathB\n self.progress(outShape, 1)\n window.cancelAnimationFrame(self.tickId)\n self.state = 0\n return\n }\n let percent = self.easing(dt / time)\n outShape = self._lerp(pathArr[0], pathArr[1], percent)\n self.progress(outShape, percent)\n self.tickId = window.requestAnimationFrame(tick)\n }\n tick()\n }\n toSVGString (shapes) {\n return shapes.map(function (shape) {\n shape.forEach(function (point, idx) {\n if (!idx) {\n point.splice(2, 0, 'C')\n point.unshift('M')\n } else {\n point.splice(0, 2, 'C')\n }\n })\n return shape.map(function (point) {\n return point.join(' ')\n }).join('')\n }).join('')\n }\n start () {\n this.animate()\n }\n stop () {\n if (this.state !== 0) {\n this.state = 2\n }\n window.cancelAnimationFrame(self.tickId)\n this.state = 0\n }\n reverse () {\n if (this.state !== 0) {\n this.stop()\n }\n let tmp = this.from\n this.from = this.to\n this.to = tmp\n this.animate()\n }\n reset (to, from = this.from) {\n if (this.state !== 0) {\n this.stop()\n }\n this.from = from\n this.to = to\n this.animate()\n }\n}\n\nfor (let k in pasition) {\n if (pasition[k] instanceof Function && !SVG.prototype[k]) {\n SVG.prototype[k] = pasition[k]\n }\n}\n\nexport default SVG\n","\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n","// 替代setInterval\nclass IntervalTimer {\n constructor () {\n this.timeID = null\n this.func = null\n }\n\n repeat (func, ms) {\n if (this.func === null) {\n this.func = func\n }\n\n if (this.func !== func) {\n return\n }\n\n this.timeID = setTimeout(() => {\n func()\n this.repeat(func, ms)\n }, ms)\n }\n\n clear () {\n clearTimeout(this.timeID)\n }\n}\n\nexport default IntervalTimer\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}","import {version} from '../package.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 static get ErrorTypes() {\n return ErrorTypes\n }\n constructor (type, currentTime, duration, networkState, readyState, src, currentSrc,\n ended, errd = {line: '', handle: '', msg: '', version: ''}) {\n let r = {}\n if (arguments.length >= 3 && arguments.length < 5) {\n r.playerVersion = version // 播放器版本\n r.errorType = arguments[0]\n r.code = arguments[1]\n r.errd = arguments[2] || {}// 错误详情\n r.ex = (r.errd || {}).msg // 补充信息\n r.domain = document.domain // domain\n } else {\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.code = r.errd.code\n }\n \n return r\n }\n}\n\nexport default Errors","let sniffer = {\n get device () {\n let r = sniffer.os\n return r.isPc ? 'pc' : 'mobile'\n // return r.isPc ? 'pc' : r.isTablet ? 'tablet' : 'mobile'\n },\n get browser () {\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 get os () {\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 * as Controls from './control/*.js'\n\nexport default Controls.control","import Player from '../player'\nimport '../style/player/volume.scss'\nimport SVG from '../utils/svg'\n\nlet volume = function () {\n let player = this; let util = Player.util; let sniffer = Player.sniffer; let scale = 0.0220625\n if (player.config.autoplayMuted) {\n player.config.volume = player.config.autoplay ? 0 : player.config.volume\n }\n\n function canplayVolFunc () {\n if (player.config.autoplay && player.config.autoplayMuted) {\n player.volume = 0\n } else {\n player.volume = player.config.volume\n }\n }\n util.once(player, 'canplay', canplayVolFunc)\n\n let volume = player.config.volume\n if (sniffer.device === 'mobile') {\n let scale = 0.0220625\n let volumePath = {\n muted: 'M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z',\n large: 'M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z'\n }\n let v2s = (vol) => {\n let s = ''\n if (vol === 0) {\n s = 'muted'\n } else {\n s = 'large'\n }\n return s\n }\n let curIocnPath = volumePath[v2s(volume)]\n let defaultPath = volumePath[v2s(volume)]\n let container = util.createDom('xg-volume', `<xg-icon class=\"xgplayer-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z\"></path>\n <path transform=\"scale(${scale} ${scale})\" d=\"${defaultPath}\"></path>\n </svg>\n </xg-icon>`,\n {}, 'xgplayer-volume')\n player.controls.appendChild(container)\n let icon = container.querySelector('.xgplayer-icon')\n let pathVolume = container.querySelectorAll('path')[1]\n let svgVolume = new SVG({\n progress: (shape, percent) => {\n let _p = svgVolume.toSVGString(shape)\n pathVolume.setAttribute('d', _p)\n curIocnPath = _p\n },\n from: curIocnPath,\n to: volumePath['large']\n });\n ['touchend', 'mousedown'].forEach((item) => {\n icon.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (player.video.muted) {\n player.video.muted = false\n player.volume = 1\n svgVolume.reset(volumePath['large'], volumePath['muted'])\n curIocnPath = volumePath['large']\n } else {\n player.volume = 0\n player.video.muted = true\n svgVolume.reset(volumePath['muted'], volumePath['large'])\n curIocnPath = volumePath['muted']\n }\n })\n })\n return\n }\n\n let iconPath = {\n muted: 'M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z',\n small: 'M795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z',\n large: 'M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z'\n }\n let v2s = (vol) => {\n let s = ''\n if (vol === 0) {\n s = 'muted'\n } else if (vol < 0.5) {\n s = 'small'\n } else {\n s = 'large'\n }\n return s\n }\n let curIocnPath = iconPath[v2s(volume)]\n let defaultPath = iconPath[v2s(volume)]\n let container = util.createDom('xg-volume', `<xg-icon class=\"xgplayer-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z\"></path>\n <path transform=\"scale(${scale} ${scale})\" d=\"${defaultPath}\"></path>\n </svg>\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>`,\n {}, 'xgplayer-volume'); let root = player.controls\n root.appendChild(container)\n let containerHeight\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 let path = container.querySelectorAll('path')[1]\n let svg = new SVG({\n progress: (shape, percent) => {\n let _p = svg.toSVGString(shape)\n path.setAttribute('d', _p)\n curIocnPath = _p\n },\n from: curIocnPath,\n to: iconPath['large']\n })\n slider.volume = player.config.volume;\n\n ['touchstart', 'mousedown'].forEach(item => {\n bar.addEventListener(item, function (e) {\n if(!slider) return\n player.video.muted = false\n slider.focus()\n util.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 util.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 util.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 });\n\n ['touchstart', 'mousedown'].forEach((item) => {\n icon.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\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 })\n\n icon.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(player.root, 'xgplayer-volume-active')\n container.focus()\n })\n\n container.addEventListener('blur', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-volume-active')\n })\n\n container.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-volume-active')\n })\n\n let _changeTimer = null\n function volumechangeFunc () {\n if (_changeTimer) {\n clearTimeout(_changeTimer)\n }\n _changeTimer = setTimeout(() => {\n svg.reset(iconPath[v2s(player.volume)], curIocnPath)\n curIocnPath = iconPath[v2s[player.volume]]\n if (!containerHeight) {\n containerHeight = bar.getBoundingClientRect().height || 76\n }\n selected.style.height = `${player.volume * containerHeight}px`\n }, 50)\n }\n util.on(player, 'volumechange', volumechangeFunc, 'destroy')\n}\n\nexport default {\n name: 'volume',\n method: volume\n}","import EventEmitter from 'event-emitter'\nimport util from './utils/util'\nimport Errors from './error'\nconst ua = navigator.userAgent\nconst IS_SAFARI = ua.indexOf('Safari') > -1 && ua.indexOf('mac') > -1\n// import allOff from 'event-emitter/all-off'\nclass Proxy {\n constructor (options) {\n this._hasStart = false\n this._seekingTimer = null\n this.videoConfig = {\n controls: false,\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'],\n 'x5-video-player-fullscreen': options['x5-video-player-fullscreen'],\n 'x5-video-orientation': options['x5-video-orientation'],\n airplay: options['airplay'],\n 'webkit-airplay': options['airplay'],\n tabindex: 2,\n mediaType: options.mediaType || 'video'\n }\n if (options.loop) {\n this.videoConfig.loop = 'loop'\n }\n if (options.crossorigin) {\n this.videoConfig.crossorigin = 'anonymous'\n }\n let textTrackDom = ''\n if (options.textTrack && Array.isArray(options.textTrack)) {\n options.textTrack.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 : util.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 = util.createDom(this.videoConfig.mediaType, textTrackDom, this.videoConfig, '')\n }\n if (options.autoplay) {\n // this.video.autoplay = true\n if (options.autoplayMuted) {\n this.video.muted = true\n }\n }\n this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked',\n 'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'loadeddata', 'loadedmetadata', '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 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], function () {\n // fix when video destroy called and video reload\n if (!self.src) {\n return\n }\n if (name === 'play') {\n self.hasStart = true\n } else if (name === 'waiting') {\n self.inWaitingStart = new Date().getTime()\n } else if (name === 'playing') {\n if (self.inWaitingStart) {\n self.inWaitingStart = undefined\n }\n }\n if (name === 'error') {\n self._onError()\n } else {\n self.emit(name, self)\n }\n\n if (self.hasOwnProperty('_interval')) {\n if (['ended', 'error', 'timeupdate'].indexOf(name) < 0) {\n clearInterval(self._interval['bufferedChange'])\n util.setInterval(self, 'bufferedChange', function () {\n let curBuffer = []\n for (let i = 0, len = self.video.buffered.length; i < len; i++) {\n curBuffer.push([self.video.buffered.start(i), self.video.buffered.end(i)])\n }\n if (curBuffer.toString() !== lastBuffer) {\n lastBuffer = curBuffer.toString()\n self.emit('bufferedChange', curBuffer)\n }\n }, 200)\n } else {\n if (name !== 'timeupdate') {\n util.clearInterval(self, 'bufferedChange')\n }\n }\n }\n }, false)\n })\n }\n\n _onError () {\n const self = this\n if (self.video.error) {\n if (self.video.error.message && self.video.error.message.indexOf('Empty src attribute') > -1) {\n return\n }\n self.emit('error', new Errors('other', self.currentTime, self.duration, self.networkState, self.readyState, self.currentSrc, self.src,\n self.ended, {\n line: 41,\n msg: self.error,\n handle: 'Constructor',\n code: self.errorCode\n }))\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 // allOff(this)\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 () {\n this.video.canPlayType()\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 set autoplay (isTrue) {\n if (!this.video) return\n this.video.autoplay = isTrue\n }\n get autoplay () {\n if (!this.video) return null\n return this.video.autoplay\n }\n get buffered () {\n if (!this.video) return null\n return this.video.buffered\n }\n get buffered2 () {\n return util.getBuffered2(this.video.buffered)\n }\n get crossOrigin () {\n if (!this.video) return null\n return this.video.crossOrigin\n }\n set crossOrigin (isTrue) {\n if (!this.video) return\n this.video.crossOrigin = isTrue\n }\n get currentSrc () {\n if (!this.video) return null\n return this.video.currentSrc\n }\n set currentSrc (src) {\n if (!this.video) return\n this.video.currentSrc = src\n }\n get currentTime () {\n if (!this.video) return null\n return this.video.currentTime\n }\n set currentTime (time) {\n if (typeof isFinite === 'function' && !isFinite(time)) return\n if (this.video) {\n this.video.currentTime = time\n this.emit('currentTimeChange')\n }\n }\n get defaultMuted () {\n if (!this.video) return null\n return this.video.defaultMuted\n }\n set defaultMuted (isTrue) {\n if (!this.video) return\n this.video.defaultMuted = isTrue\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) return null\n return this.video.ended\n }\n get error () {\n if (!this.video) return null\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 errorCode () {\n if (!this.video) return null\n let err = this.video.error || {}\n return err.code\n }\n get loop () {\n if (!this.video) return null\n return this.video.loop\n }\n set loop (isTrue) {\n if (!this.video) return\n this.video.loop = isTrue\n }\n get muted () {\n if (!this.video) return null\n return this.video.muted\n }\n set muted (isTrue) {\n if (!this.video) return\n this.video.muted = isTrue\n }\n get networkState () {\n if (!this.video) return null\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) return null\n return this.video.paused\n }\n get playbackRate () {\n if (!this.video) return null\n return this.video.playbackRate\n }\n set playbackRate (rate) {\n if (!this.video) return\n this.video.playbackRate = rate\n }\n get played () {\n if (!this.video) return null\n return this.video.played\n }\n get preload () {\n if (!this.video) return null\n return this.video.preload\n }\n set preload (isTrue) {\n if (!this.video) return\n this.video.preload = isTrue\n }\n get readyState () {\n if (!this.video) return null\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) return null\n return this.video.seekable\n }\n get seeking () {\n if (!this.video) return null\n return this.video.seeking\n }\n get src () {\n if (!this.video || !this.video.src || this.video.src === location.href) return null\n return this.video.src\n }\n set src (url) {\n if (!this.video) return\n this.video.pause()\n if(typeof this.config.beforeStartRun === 'function') {\n this.config.beforeStartRun().then(() => {\n this.video.src = url\n this.emit('srcChange')\n })\n } else {\n this.video.src = url\n this.emit('srcChange')\n }\n }\n get volume () {\n if (!this.video) return null\n return this.video.volume\n }\n set volume (vol) {\n if (typeof isFinite === 'function' && !isFinite(vol)) return\n if (!this.video) return\n this.video.volume = vol\n }\n get fullscreen () {\n return util.hasClass(this.root, 'xgplayer-is-fullscreen') || util.hasClass(this.root, 'xgplayer-fullscreen-active')\n }\n get bullet () {\n return util.findDom(this.root, 'xg-bullet') ? util.hasClass(util.findDom(this.root, 'xg-bullet'), 'xgplayer-has-bullet') : false\n }\n get textTrack () {\n return util.hasClass(this.root, 'xgplayer-is-textTrack')\n }\n get pip () {\n return util.hasClass(this.root, 'xgplayer-pip-active')\n }\n}\n\nexport default Proxy\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 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","class INDEXDB {\n constructor (mydb = {name: 'xgplayer', version: 1, db: null, ojstore: {name: 'xg-m4a', keypath: 'vid'}}) {\n this.indexedDB = window.indexedDB || window.webkitindexedDB\n this.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange // 键范围\n this.myDB = mydb\n }\n\n openDB (callback) {\n // 建立或打开数据库,建立对象存储空间(ObjectStore)\n let self = this\n let version = this.myDB.version || 1\n let request = self.indexedDB.open(self.myDB.name, version)\n request.onerror = function (e) {\n // console.log('e.currentTarget.error.message')\n }\n request.onsuccess = e => {\n this.myDB.db = e.target.result\n // console.log('成功建立并打开数据库:' + this.myDB.name + ' version' + this.myDB.version)\n callback.call(self)\n }\n request.onupgradeneeded = e => {\n let db = e.target.result\n let transaction = e.target.transaction\n let store\n if (!db.objectStoreNames.contains(self.myDB.ojstore.name)) {\n // 没有该对象空间时创建该对象空间\n store = db.createObjectStore(self.myDB.ojstore.name, {keyPath: self.myDB.ojstore.keypath})\n // console.log('成功建立对象存储空间:' + this.myDB.ojstore.name)\n }\n }\n }\n\n deletedb () {\n // 删除数据库\n let self = this\n self.indexedDB.deleteDatabase(this.myDB.name)\n // console.log(this.myDB.name + '数据库已删除')\n }\n\n closeDB () {\n // 关闭数据库\n this.myDB.db.close()\n // console.log('数据库已关闭')\n }\n\n addData (storename, data) {\n // 添加数据,重复添加会报错\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n let request\n for (let i = 0; i < data.length; i++) {\n request = store.add(data[i])\n request.onerror = function () {\n // console.error('add添加数据库中已有该数据')\n }\n request.onsuccess = function () {\n // console.log('add添加数据已存入数据库')\n }\n }\n }\n\n putData (storename, data) {\n // 添加数据,重复添加会更新原有数据\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n let request\n for (let i = 0; i < data.length; i++) {\n request = store.put(data[i])\n request.onerror = function () {\n // console.error('put添加数据库中已有该数据')\n }\n request.onsuccess = function () {\n // console.log('put添加数据已存入数据库')\n }\n }\n }\n\n getDataByKey (storename, key, callback) {\n let self = this\n // 根据存储空间的键找到对应数据\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n let request = store.get(key)\n request.onerror = function () {\n // console.error('getDataByKey error')\n callback.call(self, null)\n }\n request.onsuccess = function (e) {\n let result = e.target.result\n // console.log('查找数据成功')\n callback.call(self, result)\n }\n }\n\n deleteData (storename, key) {\n // 删除某一条记录\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n store.delete(key)\n // console.log('已删除存储空间' + storename + '中' + key + '记录')\n }\n\n clearData (storename) {\n // 删除存储空间全部记录\n let store = this.myDB.db.transaction(storename, 'readwrite').objectStore(storename)\n store.clear()\n // console.log('已删除存储空间' + storename + '全部记录')\n }\n}\n\nexport default INDEXDB\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","/*!\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!./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{background:#000;width:100%;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.xgplayer *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.xgplayer.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.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer video{width:100%;height:100%;outline:none}.xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;-webkit-order:1;-moz-box-ordinal-group:2;order:1}.xgplayer .xgplayer-none{display:none}@-webkit-keyframes playPause{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}99%{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:0}to{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@-webkit-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}}@-webkit-keyframes enterTips{0%{opacity:0;left:0;width:3px}50%{opacity:1;left:50%;width:5px}to{opacity:0;left:100%;width:3px}}.xgplayer-controls{display:-webkit-flex;display:-moz-box;display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:linear-gradient(-1deg,rgba(0,0,0,.3),transparent);z-index:10}.xgplayer-nostart .xgplayer-controls{display:none}.no-controls .xgplayer-controls{display:none!important}.xgplayer-inactive .xgplayer-controls,.xgplayer-is-live .xgplayer-controls>*{display:none}.xgplayer-is-live .xgplayer-controls .xgplayer-fullscreen,.xgplayer-is-live .xgplayer-controls .xgplayer-live,.xgplayer-is-live .xgplayer-controls .xgplayer-placeholder,.xgplayer-is-live .xgplayer-controls .xgplayer-play,.xgplayer-is-live .xgplayer-controls .xgplayer-play-img,.xgplayer-is-live .xgplayer-controls .xgplayer-volume{display:block}.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-placeholder{-webkit-flex:1;-moz-box-flex:1;flex:1;-webkit-order:3;-moz-box-ordinal-group:4;order:3;display:block}.xgplayer-start{display:none;border-radius:50%;width:70px;height:70px;background:hsla(0,0%,100%,.3);overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:1000;margin:-55px auto auto -35px;cursor:pointer}.xgplayer-nostart .xgplayer-start,.xgplayer-start-appear .xgplayer-start{margin:-35px auto auto -35px;display:inline-block}.xgplayer-inactive .xgplayer-start{margin:-35px auto auto -35px}.xgplayer-start svg{fill:hsla(0,0%,100%,.7);margin:14px}.xgplayer-start.xgplayer-start-interact{-webkit-animation:playPause .4s ease-out forwards;animation:playPause .4s ease-out forwards}.xgplayer-start:hover{background:hsla(0,0%,100%,.5)}.xgplayer-start:hover svg{fill:hsla(0,0%,100%,.6)}.xgplayer-start-img{display:none;position:absolute;left:50%;top:50%;z-index:1000;cursor:pointer}.xgplayer-nostart .xgplayer-start-img{display:block}.xgplayer-start-img.xgplayer-start-interact{-webkit-animation:playPause .4s ease-out forwards;animation:playPause .4s ease-out forwards}.xgplayer-start-img:hover{opacity:.85}@keyframes playPause{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}99%{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:0}to{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}@keyframes enterTips{0%{opacity:0;left:0;width:3px}50%{opacity:1;left:50%;width:5px}to{opacity:0;left:100%;width:3px}}.xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000 url(\\\"//lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/byted-player-images/1.0.3/xg-bg.svg\\\") no-repeat 50%/102%;z-index:1100}.xgplayer-enter .xgplayer-enter-logo{display:block;position:absolute;left:50%;top:50%;height:82px;width:242px;background-size:242px 82px;margin:-71px auto auto -121px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWUAAAB4CAYAAAAquuNKAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFGmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDgtMjBUMTQ6Mjg6NTYrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTA4LTIwVDE0OjMwOjMyKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTA4LTIwVDE0OjMwOjMyKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAwYTAwMjI3LTA0Y2Yt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)}.xgplayer-enter .xgplayer-enter-tips{display:none;position:absolute;left:50%;top:50%;width:198px;margin:20px auto auto -77px;height:1px;background:linear-gradient(90deg,#000,red,red,red,#000)}.xgplayer-enter .xgplayer-enter-tips:before{content:\\\" \\\";display:block;width:5px;height:1px;border-radius:50%;position:absolute;left:0;top:0;-webkit-animation:enterTips 1.6s linear infinite;animation:enterTips 1.6s linear infinite;background:#fff}.xgplayer-is-enter .xgplayer-enter,.xgplayer-is-enter .xgplayer-enter .xgplayer-enter-tips{display:block}.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","export const PLAYER_EVENTS = {\n PLAYER_WAITING:'PLAYER_WAITING',\n PLAYER_RESUME:'PLAYER_RESUME'\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-volume{outline:none;-webkit-order:4;-moz-box-ordinal-group:5;order:4;width:28px;height:140px;display:inline-block;position:relative;margin-top:-100px;z-index:18}.xgplayer-volume .xgplayer-icon{margin-top:8px;cursor:pointer;position:absolute;bottom:-9px}.xgplayer-slider{display:none;position:absolute;width:28px;height:88px;background:rgba(0,0,0,.54);border-radius:1px;bottom:50px;outline:none;left:0}.xgplayer.xgplayer-volume-active .xgplayer-slider{display:block}.xgplayer-slider:after{content:\\\" \\\";display:block;height:15px;width:28px;position:absolute;bottom:-15px;left:0;z-index:20}.xgplayer-bar,.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-drag{bottom:0;left:0;background:#fa1f41;max-height:76px}.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}\", \"\"]);\n\n// exports\n","/**\n * pasition v1.0.2 By dntzhang\n * Github: https://github.com/AlloyTeam/pasition\n * MIT Licensed.\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.pasition = factory());\n}(this, (function () { 'use strict';\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n//https://github.com/colinmeinke/svg-arc-to-cubic-bezier\n\nvar TAU = Math.PI * 2;\n\nvar mapToEllipse = function mapToEllipse(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x,\n y = _ref.y;\n\n x *= rx;\n y *= ry;\n\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n\n return {\n x: xp + centerx,\n y: yp + centery\n };\n};\n\nvar approxUnitArc = function approxUnitArc(ang1, ang2) {\n var a = 4 / 3 * Math.tan(ang2 / 4);\n\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n};\n\nvar vectorAngle = function vectorAngle(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n var umag = Math.sqrt(ux * ux + uy * uy);\n var vmag = Math.sqrt(ux * ux + uy * uy);\n var dot = ux * vx + uy * vy;\n\n var div = dot / (umag * vmag);\n\n if (div > 1) {\n div = 1;\n }\n\n if (div < -1) {\n div = -1;\n }\n\n return sign * Math.acos(div);\n};\n\nvar getArcCenter = function getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n\n if (radicant < 0) {\n radicant = 0;\n }\n\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n\n return [centerx, centery, ang1, ang2];\n};\n\nvar arcToBezier = function arcToBezier(_ref2) {\n var px = _ref2.px,\n py = _ref2.py,\n cx = _ref2.cx,\n cy = _ref2.cy,\n rx = _ref2.rx,\n ry = _ref2.ry,\n _ref2$xAxisRotation = _ref2.xAxisRotation,\n xAxisRotation = _ref2$xAxisRotation === undefined ? 0 : _ref2$xAxisRotation,\n _ref2$largeArcFlag = _ref2.largeArcFlag,\n largeArcFlag = _ref2$largeArcFlag === undefined ? 0 : _ref2$largeArcFlag,\n _ref2$sweepFlag = _ref2.sweepFlag,\n sweepFlag = _ref2$sweepFlag === undefined ? 0 : _ref2$sweepFlag;\n\n var curves = [];\n\n if (rx === 0 || ry === 0) {\n return [];\n }\n\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp),\n _getArcCenter2 = slicedToArray(_getArcCenter, 4),\n centerx = _getArcCenter2[0],\n centery = _getArcCenter2[1],\n ang1 = _getArcCenter2[2],\n ang2 = _getArcCenter2[3];\n\n var segments = Math.max(Math.ceil(Math.abs(ang2) / (TAU / 4)), 1);\n\n ang2 /= segments;\n\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n\n return curves.map(function (curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery),\n x1 = _mapToEllipse.x,\n y1 = _mapToEllipse.y;\n\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery),\n x2 = _mapToEllipse2.x,\n y2 = _mapToEllipse2.y;\n\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery),\n x = _mapToEllipse3.x,\n y = _mapToEllipse3.y;\n\n return { x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y };\n });\n};\n\n//https://github.com/jkroso/parse-svg-path/blob/master/index.js\n/**\n * expected argument lengths\n * @type {Object}\n */\n\nvar length = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0\n\n /**\n * segment pattern\n * @type {RegExp}\n */\n\n};var segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig;\n\n/**\n * parse an svg path data string. Generates an Array\n * of commands where each command is an Array of the\n * form `[command, arg1, arg2, ...]`\n *\n * @param {String} path\n * @return {Array}\n */\n\nfunction parse(path) {\n var data = [];\n path.replace(segment, function (_, command, args) {\n var type = command.toLowerCase();\n args = parseValues(args);\n\n // overloaded moveTo\n if (type == 'm' && args.length > 2) {\n data.push([command].concat(args.splice(0, 2)));\n type = 'l';\n command = command == 'm' ? 'l' : 'L';\n }\n\n while (true) {\n if (args.length == length[type]) {\n args.unshift(command);\n return data.push(args);\n }\n if (args.length < length[type]) throw new Error('malformed path data');\n data.push([command].concat(args.splice(0, length[type])));\n }\n });\n return data;\n}\n\nvar number = /-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/ig;\n\nfunction parseValues(args) {\n var numbers = args.match(number);\n return numbers ? numbers.map(Number) : [];\n}\n\nfunction shapeBox(shape) {\n var minX = shape[0][0],\n minY = shape[0][1],\n maxX = minX,\n maxY = minY;\n shape.forEach(function (curve) {\n var x1 = curve[0],\n x2 = curve[2],\n x3 = curve[4],\n x4 = curve[6],\n y1 = curve[1],\n y2 = curve[3],\n y3 = curve[5],\n y4 = curve[7];\n\n minX = Math.min(minX, x1, x2, x3, x4);\n minY = Math.min(minY, y1, y2, y3, y4);\n maxX = Math.max(maxX, x1, x2, x3, x4);\n maxY = Math.max(maxY, y1, y2, y3, y4);\n });\n\n return [minX, minY, maxX, maxY];\n}\n\nfunction boxDistance(boxA, boxB) {\n return Math.sqrt(Math.pow(boxA[0] - boxB[0], 2) + Math.pow(boxA[1] - boxB[1], 2)) + Math.sqrt(Math.pow(boxA[2] - boxB[2], 2) + Math.pow(boxA[3] - boxB[3], 2));\n}\n\nfunction curveDistance(curveA, curveB) {\n var x1 = curveA[0],\n x2 = curveA[2],\n x3 = curveA[4],\n x4 = curveA[6],\n y1 = curveA[1],\n y2 = curveA[3],\n y3 = curveA[5],\n y4 = curveA[7],\n xb1 = curveB[0],\n xb2 = curveB[2],\n xb3 = curveB[4],\n xb4 = curveB[6],\n yb1 = curveB[1],\n yb2 = curveB[3],\n yb3 = curveB[5],\n yb4 = curveB[7];\n\n return Math.sqrt(Math.pow(xb1 - x1, 2) + Math.pow(yb1 - y1, 2)) + Math.sqrt(Math.pow(xb2 - x2, 2) + Math.pow(yb2 - y2, 2)) + Math.sqrt(Math.pow(xb3 - x3, 2) + Math.pow(yb3 - y3, 2)) + Math.sqrt(Math.pow(xb4 - x4, 2) + Math.pow(yb4 - y4, 2));\n}\n\nfunction sortCurves(curvesA, curvesB) {\n\n var arrList = permuteCurveNum(curvesA.length);\n\n var list = [];\n arrList.forEach(function (arr) {\n var distance = 0;\n var i = 0;\n arr.forEach(function (index) {\n distance += curveDistance(curvesA[index], curvesB[i++]);\n });\n list.push({ index: arr, distance: distance });\n });\n\n list.sort(function (a, b) {\n return a.distance - b.distance;\n });\n\n var result = [];\n\n list[0].index.forEach(function (index) {\n result.push(curvesA[index]);\n });\n\n return result;\n}\n\nfunction sort(pathA, pathB) {\n\n var arrList = permuteNum(pathA.length);\n\n var list = [];\n arrList.forEach(function (arr) {\n var distance = 0;\n arr.forEach(function (index) {\n distance += boxDistance(shapeBox(pathA[index]), shapeBox(pathB[index]));\n });\n list.push({ index: arr, distance: distance });\n });\n\n list.sort(function (a, b) {\n return a.distance - b.distance;\n });\n\n var result = [];\n\n list[0].index.forEach(function (index) {\n result.push(pathA[index]);\n });\n\n return result;\n}\n\nfunction permuteCurveNum(num) {\n var arr = [];\n\n for (var i = 0; i < num; i++) {\n var indexArr = [];\n for (var j = 0; j < num; j++) {\n var index = j + i;\n if (index > num - 1) index -= num;\n indexArr[index] = j;\n }\n\n arr.push(indexArr);\n }\n\n return arr;\n}\n\nfunction permuteNum(num) {\n var arr = [];\n for (var i = 0; i < num; i++) {\n arr.push(i);\n }\n\n return permute(arr);\n}\n\nfunction permute(input) {\n var permArr = [],\n usedChars = [];\n function main(input) {\n var i, ch;\n for (i = 0; i < input.length; i++) {\n ch = input.splice(i, 1)[0];\n usedChars.push(ch);\n if (input.length == 0) {\n permArr.push(usedChars.slice());\n }\n main(input);\n input.splice(i, 0, ch);\n usedChars.pop();\n }\n return permArr;\n }\n return main(input);\n}\n\nvar pasition = {};\npasition.parser = parse;\n\npasition.lerpCurve = function (pathA, pathB, t) {\n\n return pasition.lerpPoints(pathA[0], pathA[1], pathB[0], pathB[1], t).concat(pasition.lerpPoints(pathA[2], pathA[3], pathB[2], pathB[3], t)).concat(pasition.lerpPoints(pathA[4], pathA[5], pathB[4], pathB[5], t)).concat(pasition.lerpPoints(pathA[6], pathA[7], pathB[6], pathB[7], t));\n};\n\npasition.lerpPoints = function (x1, y1, x2, y2, t) {\n return [x1 + (x2 - x1) * t, y1 + (y2 - y1) * t];\n};\n\npasition.q2b = function (x1, y1, x2, y2, x3, y3) {\n return [x1, y1, (x1 + 2 * x2) / 3, (y1 + 2 * y2) / 3, (x3 + 2 * x2) / 3, (y3 + 2 * y2) / 3, x3, y3];\n};\n\npasition.path2shapes = function (path) {\n //https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths\n //M = moveto\n //L = lineto\n //H = horizontal lineto\n //V = vertical lineto\n //C = curveto\n //S = smooth curveto\n //Q = quadratic Belzier curve\n //T = smooth quadratic Belzier curveto\n //A = elliptical Arc\n //Z = closepath\n //以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位(从上一个点开始)。\n var cmds = pasition.parser(path),\n preX = 0,\n preY = 0,\n j = 0,\n len = cmds.length,\n shapes = [],\n current = null,\n closeX = void 0,\n closeY = void 0,\n preCX = void 0,\n preCY = void 0,\n sLen = void 0,\n curves = void 0,\n lastCurve = void 0;\n\n for (; j < len; j++) {\n var item = cmds[j];\n var action = item[0];\n var preItem = cmds[j - 1];\n\n switch (action) {\n case 'm':\n sLen = shapes.length;\n shapes[sLen] = [];\n current = shapes[sLen];\n preX = preX + item[1];\n preY = preY + item[2];\n break;\n case 'M':\n\n sLen = shapes.length;\n shapes[sLen] = [];\n current = shapes[sLen];\n preX = item[1];\n preY = item[2];\n break;\n\n case 'l':\n current.push([preX, preY, preX, preY, preX, preY, preX + item[1], preY + item[2]]);\n preX += item[1];\n preY += item[2];\n break;\n\n case 'L':\n\n current.push([preX, preY, item[1], item[2], item[1], item[2], item[1], item[2]]);\n preX = item[1];\n preY = item[2];\n\n break;\n\n case 'h':\n\n current.push([preX, preY, preX, preY, preX, preY, preX + item[1], preY]);\n preX += item[1];\n break;\n\n case 'H':\n current.push([preX, preY, item[1], preY, item[1], preY, item[1], preY]);\n preX = item[1];\n break;\n\n case 'v':\n current.push([preX, preY, preX, preY, preX, preY, preX, preY + item[1]]);\n preY += item[1];\n break;\n\n case 'V':\n current.push([preX, preY, preX, item[1], preX, item[1], preX, item[1]]);\n preY = item[1];\n break;\n\n case 'C':\n\n current.push([preX, preY, item[1], item[2], item[3], item[4], item[5], item[6]]);\n preX = item[5];\n preY = item[6];\n break;\n case 'S':\n if (preItem[0] === 'C' || preItem[0] === 'c') {\n current.push([preX, preY, preX + preItem[5] - preItem[3], preY + preItem[6] - preItem[4], item[1], item[2], item[3], item[4]]);\n } else if (preItem[0] === 'S' || preItem[0] === 's') {\n current.push([preX, preY, preX + preItem[3] - preItem[1], preY + preItem[4] - preItem[2], item[1], item[2], item[3], item[4]]);\n }\n preX = item[3];\n preY = item[4];\n break;\n\n case 'c':\n current.push([preX, preY, preX + item[1], preY + item[2], preX + item[3], preY + item[4], preX + item[5], preY + item[6]]);\n preX = preX + item[5];\n preY = preY + item[6];\n break;\n case 's':\n if (preItem[0] === 'C' || preItem[0] === 'c') {\n\n current.push([preX, preY, preX + preItem[5] - preItem[3], preY + preItem[6] - preItem[4], preX + item[1], preY + item[2], preX + item[3], preY + item[4]]);\n } else if (preItem[0] === 'S' || preItem[0] === 's') {\n current.push([preX, preY, preX + preItem[3] - preItem[1], preY + preItem[4] - preItem[2], preX + item[1], preY + item[2], preX + item[3], preY + item[4]]);\n }\n\n preX = preX + item[3];\n preY = preY + item[4];\n\n break;\n case 'a':\n curves = arcToBezier({\n rx: item[1],\n ry: item[2],\n px: preX,\n py: preY,\n xAxisRotation: item[3],\n largeArcFlag: item[4],\n sweepFlag: item[5],\n cx: preX + item[6],\n cy: preY + item[7]\n });\n lastCurve = curves[curves.length - 1];\n\n curves.forEach(function (curve, index) {\n if (index === 0) {\n current.push([preX, preY, curve.x1, curve.y1, curve.x2, curve.y2, curve.x, curve.y]);\n } else {\n current.push([curves[index - 1].x, curves[index - 1].y, curve.x1, curve.y1, curve.x2, curve.y2, curve.x, curve.y]);\n }\n });\n\n preX = lastCurve.x;\n preY = lastCurve.y;\n\n break;\n\n case 'A':\n\n curves = arcToBezier({\n rx: item[1],\n ry: item[2],\n px: preX,\n py: preY,\n xAxisRotation: item[3],\n largeArcFlag: item[4],\n sweepFlag: item[5],\n cx: item[6],\n cy: item[7]\n });\n lastCurve = curves[curves.length - 1];\n\n curves.forEach(function (curve, index) {\n if (index === 0) {\n current.push([preX, preY, curve.x1, curve.y1, curve.x2, curve.y2, curve.x, curve.y]);\n } else {\n current.push([curves[index - 1].x, curves[index - 1].y, curve.x1, curve.y1, curve.x2, curve.y2, curve.x, curve.y]);\n }\n });\n\n preX = lastCurve.x;\n preY = lastCurve.y;\n\n break;\n case 'Q':\n current.push(pasition.q2b(preX, preY, item[1], item[2], item[3], item[4]));\n preX = item[3];\n preY = item[4];\n\n break;\n case 'q':\n current.push(pasition.q2b(preX, preY, preX + item[1], preY + item[2], item[3] + preX, item[4] + preY));\n preX += item[3];\n preY += item[4];\n break;\n\n case 'T':\n\n if (preItem[0] === 'Q' || preItem[0] === 'q') {\n preCX = preX + preItem[3] - preItem[1];\n preCY = preY + preItem[4] - preItem[2];\n current.push(pasition.q2b(preX, preY, preCX, preCY, item[1], item[2]));\n } else if (preItem[0] === 'T' || preItem[0] === 't') {\n current.push(pasition.q2b(preX, preY, preX + preX - preCX, preY + preY - preCY, item[1], item[2]));\n preCX = preX + preX - preCX;\n preCY = preY + preY - preCY;\n }\n\n preX = item[1];\n preY = item[2];\n break;\n\n case 't':\n if (preItem[0] === 'Q' || preItem[0] === 'q') {\n preCX = preX + preItem[3] - preItem[1];\n preCY = preY + preItem[4] - preItem[2];\n current.push(pasition.q2b(preX, preY, preCX, preCY, preX + item[1], preY + item[2]));\n } else if (preItem[0] === 'T' || preItem[0] === 't') {\n current.push(pasition.q2b(preX, preY, preX + preX - preCX, preY + preY - preCY, preX + item[1], preY + item[2]));\n preCX = preX + preX - preCX;\n preCY = preY + preY - preCY;\n }\n\n preX += item[1];\n preY += item[2];\n break;\n\n case 'Z':\n closeX = current[0][0];\n closeY = current[0][1];\n current.push([preX, preY, closeX, closeY, closeX, closeY, closeX, closeY]);\n break;\n case 'z':\n closeX = current[0][0];\n closeY = current[0][1];\n current.push([preX, preY, closeX, closeY, closeX, closeY, closeX, closeY]);\n break;\n }\n }\n\n return shapes;\n};\n\npasition._upCurves = function (curves, count) {\n var i = 0,\n index = 0,\n len = curves.length;\n for (; i < count; i++) {\n curves.push(curves[index].slice(0));\n index++;\n if (index > len - 1) {\n index -= len;\n }\n }\n};\n\nfunction split(x1, y1, x2, y2, x3, y3, x4, y4, t) {\n return {\n left: _split(x1, y1, x2, y2, x3, y3, x4, y4, t),\n right: _split(x4, y4, x3, y3, x2, y2, x1, y1, 1 - t, true)\n };\n}\n\nfunction _split(x1, y1, x2, y2, x3, y3, x4, y4, t, reverse) {\n\n var x12 = (x2 - x1) * t + x1;\n var y12 = (y2 - y1) * t + y1;\n\n var x23 = (x3 - x2) * t + x2;\n var y23 = (y3 - y2) * t + y2;\n\n var x34 = (x4 - x3) * t + x3;\n var y34 = (y4 - y3) * t + y3;\n\n var x123 = (x23 - x12) * t + x12;\n var y123 = (y23 - y12) * t + y12;\n\n var x234 = (x34 - x23) * t + x23;\n var y234 = (y34 - y23) * t + y23;\n\n var x1234 = (x234 - x123) * t + x123;\n var y1234 = (y234 - y123) * t + y123;\n\n if (reverse) {\n return [x1234, y1234, x123, y123, x12, y12, x1, y1];\n }\n return [x1, y1, x12, y12, x123, y123, x1234, y1234];\n}\n\npasition._splitCurves = function (curves, count) {\n var i = 0,\n index = 0;\n\n for (; i < count; i++) {\n var curve = curves[index];\n var cs = split(curve[0], curve[1], curve[2], curve[3], curve[4], curve[5], curve[6], curve[7], 0.5);\n curves.splice(index, 1);\n curves.splice(index, 0, cs.left, cs.right);\n\n index += 2;\n if (index >= curves.length - 1) {\n index = 0;\n }\n }\n};\n\nfunction sync(shapes, count) {\n var _loop = function _loop(i) {\n var shape = shapes[shapes.length - 1];\n var newShape = [];\n\n shape.forEach(function (curve) {\n newShape.push(curve.slice(0));\n });\n shapes.push(newShape);\n };\n\n for (var i = 0; i < count; i++) {\n _loop(i);\n }\n}\n\npasition.lerp = function (pathA, pathB, t) {\n return pasition._lerp(pasition.path2shapes(pathA), pasition.path2shapes(pathB), t);\n};\n\npasition.MIM_CURVES_COUNT = 100;\n\npasition._preprocessing = function (pathA, pathB) {\n\n var lenA = pathA.length,\n lenB = pathB.length,\n clonePathA = JSON.parse(JSON.stringify(pathA)),\n clonePathB = JSON.parse(JSON.stringify(pathB));\n\n if (lenA > lenB) {\n sync(clonePathB, lenA - lenB);\n } else if (lenA < lenB) {\n sync(clonePathA, lenB - lenA);\n }\n\n clonePathA = sort(clonePathA, clonePathB);\n\n clonePathA.forEach(function (curves, index) {\n\n var lenA = curves.length,\n lenB = clonePathB[index].length;\n\n if (lenA > lenB) {\n if (lenA < pasition.MIM_CURVES_COUNT) {\n pasition._splitCurves(curves, pasition.MIM_CURVES_COUNT - lenA);\n pasition._splitCurves(clonePathB[index], pasition.MIM_CURVES_COUNT - lenB);\n } else {\n pasition._splitCurves(clonePathB[index], lenA - lenB);\n }\n } else if (lenA < lenB) {\n if (lenB < pasition.MIM_CURVES_COUNT) {\n pasition._splitCurves(curves, pasition.MIM_CURVES_COUNT - lenA);\n pasition._splitCurves(clonePathB[index], pasition.MIM_CURVES_COUNT - lenB);\n } else {\n pasition._splitCurves(curves, lenB - lenA);\n }\n }\n });\n\n clonePathA.forEach(function (curves, index) {\n clonePathA[index] = sortCurves(curves, clonePathB[index]);\n });\n\n return [clonePathA, clonePathB];\n};\n\npasition._lerp = function (pathA, pathB, t) {\n\n var shapes = [];\n pathA.forEach(function (curves, index) {\n var newCurves = [];\n curves.forEach(function (curve, curveIndex) {\n newCurves.push(pasition.lerpCurve(curve, pathB[index][curveIndex], t));\n });\n shapes.push(newCurves);\n });\n return shapes;\n};\n\npasition.animate = function (option) {\n var pathA = pasition.path2shapes(option.from);\n var pathB = pasition.path2shapes(option.to);\n var pathArr = pasition._preprocessing(pathA, pathB);\n\n var beginTime = new Date(),\n end = option.end || function () {},\n progress = option.progress || function () {},\n begin = option.begin || function () {},\n easing = option.easing || function (v) {\n return v;\n },\n tickId = null,\n outShape = null,\n time = option.time;\n\n begin(pathA);\n\n var tick = function tick() {\n var dt = new Date() - beginTime;\n if (dt >= time) {\n outShape = pathB;\n progress(outShape, 1);\n end(outShape);\n cancelAnimationFrame(tickId);\n return;\n }\n var percent = easing(dt / time);\n outShape = pasition._lerp(pathArr[0], pathArr[1], percent);\n progress(outShape, percent);\n tickId = requestAnimationFrame(tick);\n };\n tick();\n};\n\nreturn pasition;\n\n})));\n","(function () {\n var lastTime = 0\n var vendors = ['webkit', 'moz']\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']\n }\n if (!window.requestAnimationFrame) {\n window.requestAnimationFrame = function (callback, element) {\n var currTime = new Date().getTime()\n var timeToCall = Math.max(0, 16 - (currTime - lastTime))\n var id = window.setTimeout(function () { callback(currTime + timeToCall) }, timeToCall)\n lastTime = currTime + timeToCall\n return id\n }\n }\n\n if (!window.cancelAnimationFrame) {\n window.cancelAnimationFrame = function (id) {\n clearTimeout(id)\n }\n }\n}())\n","import Player from '../player'\nimport '../style/player/time.scss'\n\nlet time = function () {\n let player = this; let util = Player.util\n let format = util.format\n let curtime = util.createDom('xg-time', `<span>${player.currentTime || format(0)}</span><em>${player.duration || format(0)}</em>`, {}, 'xgplayer-time'); let root = player.controls\n root.appendChild(curtime)\n let handle = function () {\n if (player.videoConfig.mediaType !== 'audio' || !player.isProgressMoving || !player.dash) {\n curtime.innerHTML = `<span>${format(player.currentTime || 0)}</span><em>${format(player.duration)}`\n }\n }\n util.on(player, 'durationchange', handle, 'destroy')\n util.on(player, 'timeupdate', handle, 'destroy')\n}\n\nexport default {\n name: 'time',\n method: time\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-time{-webkit-order:2;-moz-box-ordinal-group:3;order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;display:inline-block}.xgplayer-time span:after{content:\\\"/\\\";display:inline-block;padding:0 3px}.xgplayer-time em{color:hsla(0,0%,100%,.5)}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/texttrack.scss'\n\nlet textTrack = function () {\n let endedShow = false\n let player = this; let util = Player.util;\n let ul = util.createDom('xg-textTrack', '', {tabindex: 7}, 'xgplayer-textTrack'); let root = player.controls\n if (Player.sniffer.device === 'mobile') {\n player.config.textTrackActive = 'click'\n }\n let list = player.config.textTrack\n if (list && Array.isArray(list) && list.length > 0) {\n util.addClass(player.root, 'xgplayer-is-textTrack')\n let onCanplay = () => {\n let tmp = ['<ul>']\n tmp.push(`<li class=''}'>关闭</li>`)\n list.forEach(item => {\n tmp.push(`<li class='${item.default ? 'textTrack' : ''}'>${item.label}</li>`)\n })\n let controlText = player.config.lang && player.config.lang === 'zh-cn' ? '字幕' : 'Caption'\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(player.root, 'xgplayer-textTrack-active')\n urlInRoot.focus()\n })\n }\n } else {\n ul.innerHTML = tmp.join('')\n let cur = ul.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 ul.focus()\n })\n }\n root.appendChild(ul)\n }\n }\n util.once(player, 'canplay', onCanplay, 'destroy')\n }\n\n let onEnded = () => {\n let trackDoms = player.root.getElementsByTagName('Track')\n if(trackDoms && trackDoms[0] && trackDoms[0].track && trackDoms[0].track.mode !== 'hidden') {\n endedShow = true\n trackDoms[0].track.mode = 'hidden'\n let onPlaying = () => {\n if(endedShow) {\n endedShow = false\n trackDoms[0].track.mode = 'showing'\n }\n }\n util.once(player, 'playing', onPlaying, 'destroy');\n }\n }\n util.on(player, 'ended', onEnded, 'destroy');\n\n ['touchend', 'click'].forEach(item => {\n ul.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, 'textTrack')\n })\n util.addClass(li, 'textTrack')\n let trackDoms = player.root.getElementsByTagName('Track')\n if (li.innerHTML === '关闭') {\n endedShow = false\n trackDoms[0].track.mode = 'hidden'\n util.removeClass(player.root, 'xgplayer-textTrack-active')\n } else {\n if (!util.hasClass(player.root, 'xgplayer-textTrack-active')) {\n util.addClass(player.root, 'xgplayer-textTrack-active')\n }\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 if (Player.sniffer.device === 'mobile') {\n util.removeClass(player.root, 'xgplayer-textTrack-active')\n }\n }\n } else if (player.config.textTrackActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'span')) {\n if (Player.sniffer.device === 'mobile') {\n util.toggleClass(player.root, 'xgplayer-textTrack-active')\n } else {\n util.addClass(player.root, 'xgplayer-textTrack-active')\n }\n ul.focus()\n }\n player.emit('focus')\n })\n })\n\n ul.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-textTrack-active')\n })\n\n function onBlur () {\n util.removeClass(player.root, 'xgplayer-textTrack-active')\n }\n util.on(player, 'blur', onBlur, 'destroy')\n}\n\nexport default {\n name: 'textTrack',\n method: textTrack\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}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".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-left:10px;margin-top:-119px;margin-bottom:11px}.xgplayer-textTrack 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.xgplayer-textTrack-active .xgplayer-textTrack ul{display:block}.xgplayer-textTrack ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-textTrack ul li.textTrack,.xgplayer-textTrack ul li:hover{color:#fff;opacity:1}.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-is-textTrack .xgplayer-textTrack{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/screenShot.scss'\n\nlet 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\nlet screenShot = function () {\n let player = this\n let util = Player.util\n if (!player.config.screenShot) {\n return\n }\n let btn = util.createDom('xg-screenShot', '<p class=\"name\"><span>截图</span></p>', {tabindex: 11}, 'xgplayer-screenShot')\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 let root = player.controls\n root.appendChild(btn)\n let array = ['click', 'touchstart']\n array.forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n img.onload = (function () {\n canvasCtx.drawImage(player.video, 0, 0, canvas.width, canvas.height)\n img.setAttribute('crossOrigin', 'anonymous')\n img.src = canvas.toDataURL('image/png').replace('image/png', 'image/octet-stream')\n let screenShotImg = img.src.replace(/^data:image\\/[^;]+/, 'data:application/octet-stream')\n saveScreenShot(screenShotImg, '截图.png')\n })()\n })\n })\n}\n\nexport default {\n name: 'screenShot',\n method: screenShot\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-screenShot{-webkit-order:10;-moz-box-ordinal-group:11;order:10;position:relative;outline:none;display:block;cursor:pointer;margin-left:10px;margin-top:9px;margin-bottom:11px;height:20px}.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-screenShot .name span{width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/rotate.scss'\n\nconst rotate = function () {\n let player = this\n if (!this.config.rotate) { return }\n if (this.config.rotate === true) {\n this.config.rotate = {}\n }\n let util = Player.util\n let btn = util.createDom('xg-rotate', '<xg-icon class=\"xgplayer-icon xgplayer-rotate-img\"></xg-icon>', {}, 'xgplayer-rotate')\n let tipsRotate = player.config.lang && player.config.lang === 'zh-cn' ? '旋转' : 'Rotate'\n let tips = util.createDom('xg-tips', tipsRotate, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n let root = player.controls\n root.appendChild(btn)\n\n let rotateDeg = 0\n player.rotate = function (times = 1) {\n let width = player.root.offsetWidth\n let height = player.root.offsetHeight\n\n if (!player.config.rotate.innerRotate) {\n player.root.style.width = height + 'px'\n player.root.style.height = width + 'px'\n }\n\n let factor = player.config.rotate.clockwise ? 1 : -1\n\n rotateDeg = (rotateDeg + 1 + factor * 0.25 * times) % 1\n let scale\n if (rotateDeg === 0.25 || rotateDeg === 0.75) {\n if (player.config.rotate.innerRotate) {\n scale = (height / width).toFixed(2)\n // if (width >= height) { scale = (height / width).toFixed(2) } else { scale = (width / height).toFixed(2) }\n } else {\n scale = (height / width).toFixed(2)\n // if (width >= height) { scale = (width / height).toFixed(2) } else { scale = (height / width).toFixed(2) }\n }\n } else {\n scale = 1\n }\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${rotateDeg}turn) scale(${scale})`\n player.emit('rotate', rotateDeg * 360)\n }\n\n btn.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n tips.style.left = '50%'\n let rect = tips.getBoundingClientRect()\n let rootRect = player.root.getBoundingClientRect()\n if (rect.right > rootRect.right) {\n tips.style.left = `${-rect.right + rootRect.right + 16}px`\n }\n })\n\n btn.addEventListener('click',() => { player.rotate() })\n}\n\nexport default {\n name: 'rotate',\n method: rotate\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-rotate{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;display:inline-block;cursor:pointer;margin:0 4px}.xgplayer-rotate:hover .xgplayer-tips{display:block}.xgplayer-rotate-img{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cg clip-path='url(%23a)' fill='%23fff'%3E%3Cpath d='M11.666 9.167h-7.5a2.5 2.5 0 0 0-2.5 2.5v4.166a2.5 2.5 0 0 0 2.5 2.5h7.5a2.5 2.5 0 0 0 2.5-2.5v-4.166a2.5 2.5 0 0 0-2.5-2.5z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.881 4.063a.83.83 0 0 0 .105 1.193L6.99 8.06A.833.833 0 1 0 8.128 6.84L6.62 5.435l3.199-.013a6.667 6.667 0 0 1 6.374 9.322.833.833 0 0 0 1.528.665A8.334 8.334 0 0 0 9.8 3.756l-3.367.013 1.53-1.64A.833.833 0 1 0 6.743.992L3.903 4.04a.83.83 0 0 0-.021.023z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h20v20H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:10px 10px}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/replay.scss'\n\nlet replay = function () {\n let player = this; let util = Player.util\n let centerBtn = player.config.centerBtn ? player.config.centerBtn : {}\n let iconPath, btn, img, svg\n if (navigator.userAgent.indexOf('iPhone OS 9') > -1) {\n return\n }\n if (centerBtn.type === 'img') {\n btn = util.createDom('xg-replay', '<div class=\"xgplayer-replay-img\"></div>', {}, 'xgplayer-replay')\n img = btn.querySelector('.xgplayer-replay-img')\n img.style.backgroundImage = `url(\"${centerBtn.url.replay}\")`\n if (centerBtn.width && centerBtn.height) {\n let width, height, unit\n ['px', 'rem', 'em', 'pt', 'dp', 'vw', 'vh', 'vm', '%'].every((item) => {\n if (centerBtn.width.indexOf(item) > -1 && centerBtn.height.indexOf(item) > -1) {\n width = parseFloat(centerBtn.width.slice(0, centerBtn.width.indexOf(item)).trim())\n height = parseFloat(centerBtn.height.slice(0, centerBtn.height.indexOf(item)).trim())\n unit = item\n return false\n } else {\n return true\n }\n })\n img.style.width = `${width}${unit}`\n img.style.height = `${height}${unit}`\n img.style.backgroundSize = `${width}${unit} ${height}${unit}`\n img.style.margin = `-${height / 2}${unit} auto auto -${width / 2}${unit}`\n }\n } else {\n iconPath = {\n replay: centerBtn.replayPath ? centerBtn.replayPath : `M8.22708362,13.8757234 L11.2677371,12.6472196 C11.7798067,12.4403301 12.3626381,12.6877273 12.5695276,13.1997969 L12.9441342,14.1269807 C13.1510237,14.6390502 12.9036264,15.2218816 12.3915569,15.4287712 L6.8284538,17.6764107 L5.90126995,18.0510173 C5.38920044,18.2579068 4.80636901,18.0105096 4.5994795,17.49844 L1.97723335,11.0081531 C1.77034384,10.4960836 2.0177411,9.91325213 2.52981061,9.70636262 L3.45699446,9.33175602 C3.96906396,9.12486652 4.5518954,9.37226378 4.75878491,9.88433329 L5.67885163,12.1615783 C7.99551726,6.6766934 13.3983951,3 19.5,3 C27.7842712,3 34.5,9.71572875 34.5,18 C34.5,26.2842712 27.7842712,33 19.5,33 C15.4573596,33 11.6658607,31.3912946 8.87004692,28.5831991 C8.28554571,27.9961303 8.28762719,27.0463851 8.87469603,26.4618839 C9.46176488,25.8773827 10.4115101,25.8794641 10.9960113,26.466533 C13.2344327,28.7147875 16.263503,30 19.5,30 C26.127417,30 31.5,24.627417 31.5,18 C31.5,11.372583 26.127417,6 19.5,6 C14.4183772,6 9.94214483,9.18783811 8.22708362,13.8757234 Z`\n }\n btn = util.createDom('xg-replay', `\n <svg class=\"xgplayer-replay-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"78\" height=\"78\" viewbox=\"0 0 78 78\">\n <path d=\"${iconPath.replay}\"></path>\n </svg>\n <xg-replay-txt class=\"xgplayer-replay-txt\">重播</xg-replay-txt>\n `, {}, 'xgplayer-replay')\n svg = btn.querySelector('.xgplayer-replay-svg')\n }\n let root = player.root\n root.appendChild(btn)\n\n function endedFunc () {\n if (centerBtn.type === 'img') {\n img.style.backgroundImage = `url(\"${centerBtn.url.replay}\")`\n } else {\n btn.querySelector('.xgplayer-replay-txt').textContent = player.lang.REPLAY\n let path = btn.querySelector('path')\n let transform = window.getComputedStyle(path).getPropertyValue('transform')\n if (transform !== 'none') {\n path.setAttribute('transform', transform)\n }\n }\n if (!player.config.loop) {\n util.addClass(root, 'replay')\n }\n }\n\n util.on(player, 'ended', endedFunc, 'destroy')\n let dom = svg || img\n dom.addEventListener('click', function (e) {\n e.preventDefault()\n util.removeClass(root, 'replay')\n player.replay()\n })\n}\n\nexport default {\n name: 'replay',\n method: 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!./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-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:500;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;cursor:pointer}.xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-replay svg path{-webkit-transform:translate(20px,21px);-ms-transform:translate(20px,21px);transform:translate(20px,21px);fill:#ddd}.xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-replay svg:hover path{fill:#fff}.xgplayer-replay .xgplayer-replay-img{position:absolute;left:50%;top:50%;cursor:pointer}.xgplayer-replay .xgplayer-replay-img:hover{opacity:.85}.xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px;cursor:pointer}.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer.xgplayer-ended .xgplayer-replay{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-replay-img{display:none;position:absolute;left:50%;top:50%;z-index:500;cursor:pointer}.xgplayer-replay-img:hover{opacity:.85}.xgplayer.xgplayer-ended .xgplayer-replay-img{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/progress.scss'\n\nconst isRotateFullscreen = (player) => {\n return Player.util.hasClass(player.root, 'xgplayer-rotate-fullscreen')\n}\n\nlet progress = function () {\n let player = this\n let util = Player.util\n let container = util.createDom('xg-progress', '<xg-outer class=\"xgplayer-progress-outer\"><xg-cache class=\"xgplayer-progress-cache\"></xg-cache><xg-played class=\"xgplayer-progress-played\"></xgplayer-played><xg-progress-btn class=\"xgplayer-progress-btn\"></xg-progress-btn><xg-point class=\"xgplayer-progress-point xgplayer-tips\"></xg-point><xg-thumbnail class=\"xgplayer-progress-thumbnail xgplayer-tips\"></xg-thumbnail></xg-outer>', {tabindex: 1}, 'xgplayer-progress')\n let root = player.controls\n let containerWidth\n root.appendChild(container)\n let progress = container.querySelector('.xgplayer-progress-played')\n let btn = container.querySelector('.xgplayer-progress-btn')\n let btnWidth = 14 // btn.getBoundingClientRect().width\n let outer = container.querySelector('.xgplayer-progress-outer')\n let cache = container.querySelector('.xgplayer-progress-cache')\n let point = container.querySelector('.xgplayer-progress-point')\n let thumbnail = container.querySelector('.xgplayer-progress-thumbnail')\n player.dotArr = {}\n function dotEvent (dotItem, text) {\n dotItem.addEventListener('mouseenter', function (e) {\n if (text) {\n util.addClass(dotItem, 'xgplayer-progress-dot-show')\n util.addClass(container, 'xgplayer-progress-dot-active')\n }\n })\n dotItem.addEventListener('mouseleave', function (e) {\n if (text) {\n util.removeClass(dotItem, 'xgplayer-progress-dot-show')\n util.removeClass(container, 'xgplayer-progress-dot-active')\n }\n })\n dotItem.addEventListener('touchend', function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (text) {\n if (!util.hasClass(dotItem, 'xgplayer-progress-dot-show')) {\n Object.keys(player.dotArr).forEach(function (key) {\n if (player.dotArr[key]) {\n util.removeClass(player.dotArr[key], 'xgplayer-progress-dot-show')\n }\n })\n }\n util.toggleClass(dotItem, 'xgplayer-progress-dot-show')\n util.toggleClass(container, 'xgplayer-progress-dot-active')\n }\n })\n }\n function canplayProgFunc () {\n if (player.config.progressDot && util.typeOf(player.config.progressDot) === 'Array') {\n player.config.progressDot.forEach(item => {\n if (item.time >= 0 && item.time <= player.duration) {\n let dot = util.createDom('xg-progress-dot', item.text ? `<span class=\"xgplayer-progress-tip\">${item.text}</span>` : '', {}, 'xgplayer-progress-dot')\n dot.style.left = (item.time / player.duration) * 100 + '%'\n outer.appendChild(dot)\n player.dotArr[item.time] = dot\n dotEvent(dot, item.text)\n }\n })\n }\n }\n util.once(player, 'canplay', canplayProgFunc)\n player.addProgressDot = function (time, text) {\n if (player.dotArr[time]) {\n return\n }\n if (time >= 0 && time <= player.duration) {\n let dot = util.createDom('xg-progress-dot', '', {}, 'xgplayer-progress-dot')\n dot.style.left = (time / player.duration) * 100 + '%'\n outer.appendChild(dot)\n player.dotArr[time] = dot\n dotEvent(dot, text)\n }\n }\n player.removeProgressDot = function (time) {\n if (time >= 0 && time <= player.duration && player.dotArr[time]) {\n let dot = player.dotArr[time]\n dot.parentNode.removeChild(dot)\n dot = null\n player.dotArr[time] = null\n }\n }\n player.removeAllProgressDot = function () {\n Object.keys(player.dotArr).forEach(function (key) {\n if (player.dotArr[key]) {\n let dot = player.dotArr[key]\n dot.parentNode.removeChild(dot)\n dot = null\n player.dotArr[key] = null\n }\n })\n }\n let tnailPicNum = 0\n let tnailWidth = 0\n let tnailHeight = 0\n let tnailCol = 0\n let tnailRow = 0\n let interval = 0\n let tnailUrls = []\n let tnailScale = 1\n if (player.config.thumbnail) {\n tnailPicNum = player.config.thumbnail.pic_num\n tnailWidth = player.config.thumbnail.width\n tnailHeight = player.config.thumbnail.height\n tnailCol = player.config.thumbnail.col\n tnailRow = player.config.thumbnail.row\n tnailUrls = player.config.thumbnail.urls\n tnailScale = player.config.thumbnail.scale || 1\n thumbnail.style.width = `${tnailWidth}px`\n thumbnail.style.height = `${tnailHeight}px`\n thumbnail.style.transform = `scale(${tnailScale})`\n thumbnail.style.transformOrigin = 'center bottom'\n };\n ['touchstart', 'mousedown'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n util.event(e)\n if (e._target === point || (!player.config.allowSeekAfterEnded && player.ended)) {\n return false\n }\n container.focus()\n containerWidth = container.getBoundingClientRect().width\n let {left} = progress.getBoundingClientRect()\n\n const isRotate = isRotateFullscreen(player)\n if (isRotate) {\n left = progress.getBoundingClientRect().top\n containerWidth = container.getBoundingClientRect().height\n } else {\n containerWidth = container.getBoundingClientRect().width\n left = progress.getBoundingClientRect().left\n }\n\n let move = function (e) {\n e.preventDefault()\n e.stopPropagation()\n util.event(e)\n player.isProgressMoving = true\n let w = (isRotate ? e.clientY : e.clientX) - left\n if (w > containerWidth) {\n w = containerWidth\n }\n let now = w / containerWidth * player.duration\n progress.style.width = `${w * 100 / containerWidth}%`\n if (w - btnWidth / 2 < 0) {\n btn.style.left = '0px'\n btn.style.transform = ''\n } else if (w + btnWidth / 2 > containerWidth) {\n btn.style.left = `${containerWidth - btnWidth}px`\n btn.style.transform = ''\n } else {\n btn.style.left = '100%'\n btn.style.transform = 'translate(-50%, 0)'\n }\n\n if (player.videoConfig.mediaType === 'video' && !player.dash && !player.config.closeMoveSeek) {\n player.currentTime = Number(now).toFixed(1)\n } else {\n let time = util.findDom(root, '.xgplayer-time')\n if (time) {\n time.innerHTML = `<span>${util.format(now || 0)}</span><em>${util.format(player.duration)}`\n }\n }\n player.emit('focus')\n }\n let up = function (e) {\n e.preventDefault()\n e.stopPropagation()\n util.event(e)\n window.removeEventListener('mousemove', move)\n window.removeEventListener('touchmove', move, { passive: false })\n window.removeEventListener('mouseup', up)\n window.removeEventListener('touchend', up)\n container.blur()\n if (!player.isProgressMoving || player.videoConfig.mediaType === 'audio' || player.dash || player.config.closeMoveSeek) {\n let w = (isRotate ? e.clientY : e.clientX) - left\n if (w > containerWidth) {\n w = containerWidth\n }\n let now = w / containerWidth * player.duration\n progress.style.width = `${w * 100 / containerWidth}%`\n if (w - btnWidth / 2 < 0) {\n btn.style.left = '0px'\n btn.style.transform = ''\n } else if (w + btnWidth / 2 > containerWidth) {\n btn.style.left = `${containerWidth - btnWidth}px`\n btn.style.transform = ''\n } else {\n btn.style.left = '100%'\n btn.style.transform = 'translate(-50%, 0)'\n }\n player.currentTime = Number(now).toFixed(1)\n if (now >= player.duration) player.emit('seekEnd')\n }\n player.emit('focus')\n player.isProgressMoving = false\n if (player.config.seekEndPlay) {\n player.play()\n }\n }\n window.addEventListener('mousemove', move)\n window.addEventListener('touchmove', move, { passive: false })\n window.addEventListener('mouseup', up)\n window.addEventListener('touchend', up)\n return false\n })\n })\n\n container.addEventListener('mouseenter', function (e) {\n if (!player.config.allowSeekAfterEnded && player.ended) {\n return false\n }\n const isRotate = isRotateFullscreen(player)\n let containerLeft = isRotate ? container.getBoundingClientRect().top : container.getBoundingClientRect().left\n let containerWidth = isRotate ? container.getBoundingClientRect().height : container.getBoundingClientRect().width\n let compute = function (e) {\n let now = ((isRotate ? e.clientY : e.clientX) - containerLeft) / containerWidth * player.duration\n now = now < 0 ? 0 : now\n point.textContent = util.format(now)\n let pointWidth = point.getBoundingClientRect().width\n if (player.config.thumbnail) {\n interval = player.duration / tnailPicNum\n let index = Math.floor(now / interval)\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\n let left = (isRotate ? e.clientY : e.clientX) - containerLeft - tnailWidth / 2\n left = left > 0 ? left : 0\n left = left < containerWidth - tnailWidth * tnailScale ? left : containerWidth - tnailWidth * tnailScale\n thumbnail.style.left = `${left + (tnailScale - 1) * tnailWidth / 2}px`\n thumbnail.style.top = `${-10 - tnailHeight}px`\n thumbnail.style.display = 'block'\n point.style.left = `${left + tnailWidth * tnailScale / 2 - pointWidth / 2}px`\n } else {\n let left = e.clientX - containerLeft - pointWidth / 2\n left = left > 0 ? left : 0\n left = left > containerWidth - pointWidth ? containerWidth - pointWidth : left\n point.style.left = `${left}px`\n }\n if (util.hasClass(container, 'xgplayer-progress-dot-active')) {\n point.style.display = 'none'\n } else {\n point.style.display = 'block'\n }\n }\n let move = function (e) {\n compute(e)\n }\n let leave = function (e) {\n container.removeEventListener('mousemove', move, false)\n container.removeEventListener('mouseleave', leave, false)\n compute(e)\n point.style.display = 'none'\n thumbnail.style.display = 'none'\n }\n container.addEventListener('mousemove', move, false)\n container.addEventListener('mouseleave', leave, false)\n compute(e)\n }, false)\n\n let lastBtnLeft = false\n const handleTimeUpdate = function () {\n if (!containerWidth && container) {\n containerWidth = container.getBoundingClientRect().width\n }\n if (player.videoConfig.mediaType !== 'audio' || !player.isProgressMoving || !player.dash) {\n const precent = player.currentTime / player.duration\n const prevPrecent = parseFloat(progress.style.width || '0') / parseFloat(container.style.width || '100')\n if (Math.abs(precent - prevPrecent) <= 1) {\n progress.style.width = `${player.currentTime * 100 / player.duration}%`\n let left = player.currentTime / player.duration * containerWidth - btnWidth / 2\n if (left < 0) {\n btn.style.left = '0px'\n btn.style.transform = ''\n lastBtnLeft = false\n } else if (left + btnWidth > containerWidth) {\n btn.style.left = `${containerWidth - btnWidth}px`\n btn.style.transform = ''\n lastBtnLeft = false\n } else {\n if (lastBtnLeft) {\n return\n }\n btn.style.left = '100%'\n btn.style.transform = 'translate(-50%, 0)'\n lastBtnLeft = true\n }\n }\n }\n }\n util.on(player, 'timeupdate', handleTimeUpdate, 'destroy')\n\n let onCurrentTimeChange = function () {\n progress.style.width = `${player.currentTime * 100 / player.duration}%`\n let left = player.currentTime / player.duration * containerWidth - btnWidth / 2\n if (left < 0) {\n btn.style.left = '0px'\n btn.style.transform = ''\n lastBtnLeft = false\n } else if (left + btnWidth > containerWidth) {\n btn.style.left = `${containerWidth - btnWidth}px`\n btn.style.transform = ''\n lastBtnLeft = false\n } else {\n if (lastBtnLeft) {\n return\n }\n btn.style.left = '100%'\n btn.style.transform = 'translate(-50%, 0)'\n lastBtnLeft = true\n }\n }\n util.on(player, 'currentTimeChange', onCurrentTimeChange, 'destroy')\n\n let onSrcChange = function () {\n progress.style.width = '0%'\n btn.style.left = '0px'\n btn.style.transform = ''\n lastBtnLeft = false\n }\n util.on(player, 'srcChange', onSrcChange, 'destroy')\n\n const handleCacheUpdate = function () {\n let buffered = player.buffered\n if (buffered && buffered.length > 0) {\n let end = buffered.end(buffered.length - 1)\n for (let i = 0, len = buffered.length; i < len; i++) {\n if (player.currentTime >= buffered.start(i) && player.currentTime <= buffered.end(i)) {\n end = buffered.end(i)\n // for (let j = i + 1; j < buffered.length; j++) {\n // if (buffered.start(j) - buffered.end(j - 1) >= 2) {\n // end = buffered.end(j - 1)\n // break\n // }\n // }\n break\n }\n }\n cache.style.width = `${end / player.duration * 100}%`\n }\n }\n const cacheUpdateEvents = ['bufferedChange', 'cacheupdate', 'ended', 'timeupdate']\n cacheUpdateEvents.forEach(item => {\n util.on(player, item, handleCacheUpdate, 'destroy')\n })\n\n util.once(player, 'destroy', player.removeAllProgressDot)\n}\n\nexport default {\n name: 'progress',\n method: progress\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-progress{display:block;position:absolute;height:20px;line-height:20px;left:0;right:0;outline:none;top:-10px;z-index:35}.xgplayer.xgplayer-definition-active .xgplayer-progress,.xgplayer.xgplayer-playback-active .xgplayer-progress,.xgplayer.xgplayer-textTrack-active .xgplayer-progress,.xgplayer.xgplayer-volume-active .xgplayer-progress{z-index:15}.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-progress-cache,.xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-progress-cache{width:0;background:hsla(0,0%,100%,.5)}.xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#fa1f41,#e31106);border-radius:0 1.5px 1.5px 0}.xgplayer-progress-btn{display:none;position:absolute;left:0;top:-6px;width:14px;height:16px;border-radius:6px;background:#fff;box-shadow:0 0 2px 0 rgba(0,0,0,.26)}.xgplayer-progress-point{position:absolute}.xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;left:0;top:-40px;height:auto;line-height:30px;width:auto;-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8);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-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-progress-thumbnail{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box}.xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-progress:hover .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-progress:hover .xgplayer-progress-dot{height:6px}.xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-progress:hover .xgplayer-progress-btn{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport sniffer from '../utils/sniffer'\nimport '../style/player/poster.scss'\n\nlet poster = function () {\n let player = this; let util = Player.util\n let poster = util.createDom('xg-poster', '', {}, 'xgplayer-poster')\n let root = player.root\n if (player.config.poster) {\n poster.style.backgroundImage = `url(${player.config.poster})`\n root.appendChild(poster)\n }\n\n function hiddenPoster () {\n poster.style.display = 'none'\n }\n util.on(player, 'play', hiddenPoster, 'destroy')\n // if (sniffer.device === 'pc') {\n util.on(player, 'complete', hiddenPoster, 'destroy')\n // }\n}\n\nexport default {\n name: 'poster',\n method: poster\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-poster{position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:50%}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/playNext.scss'\n\nconst playNext = function () {\n let player = this\n const util = Player.util\n const controlEl = player.controls\n let nextBtn = player.config.playNextBtn\n let index = -1\n if (nextBtn && nextBtn.urlList) {\n let next\n if (nextBtn.type === 'img') {\n next = Player.util.createImgBtn('playNext', nextBtn.url, nextBtn.width, nextBtn.height)\n } else {\n next = util.createDom('xg-playNext', `<xg-icon class=\"xgplayer-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(0.025 0.025)\"\n d=\"M800 380v768h-128v-352l-320 320v-704l320 320v-352z\"></path>\n </svg></xg-icon>`, {}, 'xgplayer-playNext')\n }\n controlEl.appendChild(next)\n const ev = ['click', 'touchend']\n ev.forEach(item => {\n next.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if(index + 1 < nextBtn.urlList.length) {\n index++\n player.video.pause()\n player.currentTime = 0\n player.video.autoplay = true\n player.src = nextBtn.urlList[index]\n player.emit('playerNext', index+1)\n } else {\n player.emit('urlList last')\n }\n }, false)\n })\n }\n}\n\nexport default {\n name: 'playNext',\n method: playNext\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-playNext,.xgplayer-playNext-img{-webkit-order:1;-moz-box-ordinal-group:2;order:1;cursor:pointer}.xgplayer-playNext-img:hover,.xgplayer-playNext:hover{opacity:.85}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/playback.scss'\n\nlet playbackRate = function () {\n let player = this\n let sniffer = Player.sniffer\n let util = Player.util\n if (player.config.playbackRate) {\n player.config.playbackRate.sort((a, b) => b - a)\n } else {\n return false\n }\n let container = util.createDom('xg-playback', ' ', {}, 'xgplayer-playback')\n if (sniffer.device === 'mobile') {\n player.config.playbackRateActive = 'click'\n }\n player.controls.appendChild(container)\n let list = []\n player.config.playbackRate.forEach(item => {\n list.push({name: `${item}`, rate: `${item}x`, selected: false})\n })\n function onPlaying () {\n player.video.playbackRate = player.config.defaultPlaybackRate\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 util.once(player, 'playing', onPlaying)\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}x</p>`)\n let playbackDom = player.root.querySelector('.xgplayer-playback')\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 util.addClass(player.root, 'xgplayer-playback-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 util.addClass(player.root, 'xgplayer-playback-active')\n container.focus()\n })\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 (util.hasClass(item, 'selected')) {\n from = parseFloat(item.getAttribute('cname'))\n util.removeClass(item, 'selected')\n }\n })\n item.selected = true\n player.video.playbackRate = item.name * 1\n selectedSpeed = item.name * 1\n }\n })\n util.addClass(li, 'selected')\n to = parseFloat(li.getAttribute('cname'))\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}x`\n player.emit('playbackrateChange', {from, to})\n if (sniffer.device === 'mobile') {\n util.removeClass(player.root, 'xgplayer-playback-active')\n }\n } else if (player.config.playbackRateActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'span')) {\n if (sniffer.device === 'mobile') {\n util.toggleClass(player.root, 'xgplayer-playback-active')\n } else {\n util.addClass(player.root, 'xgplayer-playback-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 util.removeClass(player.root, 'xgplayer-playback-active')\n })\n\n function onBlur () {\n util.removeClass(player.root, 'xgplayer-playback-active')\n }\n util.on(player, 'blur', onBlur, 'destroy')\n\n function onPlay () {\n if (player.video.playbackRate.toFixed(1) !== selectedSpeed.toFixed(1)) {\n player.video.playbackRate = selectedSpeed\n }\n }\n util.on(player, 'play', onPlay, 'destroy')\n}\n\nexport default {\n name: 'playbackRate',\n method: playbackRate\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!./playback.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!./playback.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!./playback.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-playback{-webkit-order:8;-moz-box-ordinal-group:9;order:8;width:60px;height:20px;z-index:18;position:relative;display:inline-block;margin-left:10px;cursor:default}.xgplayer-playback ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:19px;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-playback 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-playback ul li.selected,.xgplayer-playback ul li:hover{color:#fff;opacity:1}.xgplayer-playback ul li:first-child{position:relative;margin-top:12px}.xgplayer-playback ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-playback .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;cursor:pointer;position:relative;top:11px;background:rgba(0,0,0,.38);color:hsla(0,0%,100%,.8);border-radius:10px}.xgplayer-playback span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-playback:hover{opacity:1}.xgplayer-playback-active .xgplayer-playback ul{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport SVG from '../utils/svg'\nimport '../style/player/play.scss'\n\nlet play = function () {\n let player = this\n let root = player.controls; let util = Player.util; let scale = player.config.iconScale || 0.0320625\n let iconPath = {\n play: 'M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z',\n pause: 'M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z'\n }\n let playBtn = player.config.playBtn ? player.config.playBtn : {}\n let btn, path, svg\n if (playBtn.type === 'img') {\n btn = Player.util.createImgBtn('play', playBtn.url.play, playBtn.width, playBtn.height)\n } else {\n btn = util.createDom('xg-play', `<xg-icon class=\"xgplayer-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"${iconPath.play}\"></path>\n </svg></xg-icon>`, {}, 'xgplayer-play')\n path = btn.querySelector('path')\n svg = new SVG({\n progress: (shape, percent) => {\n path.setAttribute('d', svg.toSVGString(shape))\n },\n from: iconPath.pause,\n to: iconPath.play,\n duration: 50\n })\n }\n\n let tipsPlay = player.config.lang && player.config.lang === 'zh-cn' ? '播放' : 'Play'\n let tipsPause = player.config.lang && player.config.lang === 'zh-cn' ? '暂停' : 'Pause'\n let tips = util.createDom('xg-tips', tipsPlay, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n\n let ev = ['click', 'touchstart']\n root.appendChild(btn)\n ev.forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (player.ended) {\n if (player.config.enableEndedPlay) {\n player.replay()\n }\n return\n }\n util.removeClass(player.root, 'xgplayer-nostart')\n if (player.paused) {\n player.play()\n player.emit('playBtnClick', 'play')\n } else {\n player.pause()\n player.emit('playBtnClick', 'pause')\n }\n }, false)\n })\n\n function playFunc () {\n if (playBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${playBtn.url.pause}\")`\n } else {\n setTimeout(() => {\n tips.textContent = tipsPause\n if (svg.to !== iconPath.pause) {\n svg.reset(iconPath.pause, iconPath.play)\n }\n }, 80)\n }\n }\n util.on(player, 'play', playFunc, 'destroy')\n\n function pauseFunc () {\n if (playBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${playBtn.url.play}\")`\n } else {\n setTimeout(() => {\n tips.textContent = tipsPlay\n if (svg.to !== iconPath.play) {\n svg.reset(iconPath.play, iconPath.pause)\n }\n }, 80)\n }\n }\n util.on(player, 'pause', pauseFunc, 'destroy')\n}\n\nexport default {\n name: 'play',\n method: play\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-play,.xgplayer-play-img{position:relative;-webkit-order:0;-moz-box-ordinal-group:1;order:0;display:block;cursor:pointer}.xgplayer-play-img .xgplayer-icon,.xgplayer-play .xgplayer-icon{margin-top:3px}.xgplayer-play-img:hover,.xgplayer-play:hover{opacity:.85}.xgplayer-play-img:hover .xgplayer-tips,.xgplayer-play:hover .xgplayer-tips{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/pip.scss'\n\nlet pip = function () {\n let player = this\n let util = Player.util\n if (!player.config.pip) {\n return\n }\n let btn = util.createDom('xg-pip', '<p class=\"name\"><span>画中画</span></p>', {tabindex: 9}, 'xgplayer-pip')\n let root = player.controls\n let container = player.root\n root.appendChild(btn)\n let clickEvents = ['click', 'touchstart']\n clickEvents.forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (util.hasClass(container, 'xgplayer-pip-active')) {\n player.exitPIP()\n } else {\n player.getPIP()\n }\n })\n })\n}\n\nexport default {\n name: 'pip',\n method: pip\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-pip{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;margin-left:10px;margin-top:9px;margin-bottom:11px;height:20px}.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-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}.xgplayer.xgplayer-pip-active{position:fixed!important;right:0;bottom:200px;z-index:999!important}.xgplayer.xgplayer-pip-active .xgplayer-controls{display:none}.xgplayer.xgplayer-pip-active xg-bullet{opacity:0!important}.xgplayer.xgplayer-pip-active .xgplayer-pip-lay{display:block}.xgplayer-pip-lay{position:absolute;top:26px;left:0;z-index:1450;cursor:pointer;background-color:transparent;display:none}.xgplayer-pip-lay,.xgplayer-pip-lay div{width:100%;height:100%}.xgplayer-pip-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:1500;display:none}.xgplayer.xgplayer-pip-active .xgplayer-pip-drag{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer.xgplayer-inactive .xgplayer-pip-drag{display:none}\", \"\"]);\n\n// exports\n","import Player from '../player'\n\nlet pc = function () {\n let player = this\n let util = Player.util; let controls = player.controls; let root = player.root\n let clk = 0; let _click_\n let centerBtn = player.config.centerBtn ? player.config.centerBtn : {}\n let iconPath, btn, path\n if (centerBtn.type === 'img') {\n btn = Player.util.createImgBtn('start', centerBtn.url.play, centerBtn.width, centerBtn.height)\n } else {\n iconPath = {\n pause: centerBtn.pausePath ? centerBtn.pausePath : 'M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z',\n play: centerBtn.playPath ? centerBtn.playPath : 'M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z'\n }\n btn = util.createDom('xg-start', `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(0.04,0.04)\" d=\"${iconPath.pause}\"></path>\n </svg>`, {}, 'xgplayer-start')\n path = btn.querySelector('path')\n }\n\n let enter = util.createDom('xg-enter', '<xg-enter-logo class=\"xgplayer-enter-logo\"></xg-enter-logo><xg-enter-tips class=\"xgplayer-enter-tips\"></xg-player-tips>', {}, 'xgplayer-enter')\n let logo = enter.querySelector('.xgplayer-enter-logo')\n root.appendChild(btn)\n root.appendChild(enter)\n let enterTips = enter.querySelector('.xgplayer-enter-tips')\n let enterLogo = new Image()\n // enterLogo.onload = () => {\n enterTips.style.display = 'block'\n // }\n if (player.config.enterLogo && player.config.enterLogo.url && player.config.enterLogo.width && player.config.enterLogo.height) {\n enterLogo.src = player.config.enterLogo.url\n\n logo.style.backgroundImage = `url(\"${player.config.enterLogo.url}\")`\n logo.style.width = `${player.config.enterLogo.width}px`\n logo.style.height = `${player.config.enterLogo.height}px`\n\n logo.style.backgroundSize = `${player.config.enterLogo.width}px ${player.config.enterLogo.height}px`\n logo.style.margin = `-${player.config.enterLogo.height / 2}px auto auto -${player.config.enterLogo.width / 2}px`\n\n enterTips.style.margin = `${player.config.enterLogo.height - 6}px auto auto -62px`\n } else {\n if(navigator.userAgent.indexOf('Edge') >= 0) {\n enterLogo.src = '//p3-xg.byteimg.com/obj/tos-cn-i-xg/5f979708e7fd4465ad6fe9a952a468f7'\n } else {\n // enterLogo.src = util.getBgImage(logo)\n }\n }\n\n if (player.config.enterTips && player.config.enterTips.background) {\n enterTips.style.background = `${player.config.enterTips.background}`\n }\n\n if (player.config.enterBg) {\n if (player.config.enterBg.url) {\n enter.style.backgroundImage = `url(\"${player.config.enterBg.url}\")`\n } else if (player.config.enterBg.color) {\n enter.style.background = player.config.enterBg.color\n }\n }\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 startClc (e) {\n e.preventDefault()\n e.stopPropagation()\n // if (!player.config.url) {\n // return\n // }\n if (util.hasClass(root, 'xgplayer-nostart')) {\n util.removeClass(root, 'xgplayer-nostart') // for ie quick switch\n util.addClass(root, 'xgplayer-is-enter')\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 util.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 ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) { startClc(e) }, false)\n })\n\n function startAniEnd (e) {\n e.preventDefault()\n util.removeClass(btn, 'xgplayer-start-interact')\n // btn.style.display = 'none'\n util.removeClass(root, 'xgplayer-nostart')\n util.removeClass(root, 'xgplayer-start-appear')\n }\n btn.addEventListener('animationend', function (e) { startAniEnd(e) })\n btn.addEventListener('webkitAnimationEnd', function (e) { startAniEnd(e) })\n\n function onPlayBtnClick (type) {\n if (type === 'pause') {\n if (centerBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${centerBtn.url.play}\")`\n } else {\n path.setAttribute('d', iconPath.play)\n }\n // btn.style.display = 'inline-block'\n util.addClass(root, 'xgplayer-start-appear')\n util.addClass(btn, 'xgplayer-start-interact')\n } else if (type === 'play') {\n if (centerBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${centerBtn.url.pause}\")`\n } else {\n path.setAttribute('d', iconPath.pause)\n }\n // btn.style.display = 'inline-block'\n util.addClass(root, 'xgplayer-start-appear')\n util.addClass(btn, 'xgplayer-start-interact')\n }\n }\n util.on(player, 'playBtnClick', onPlayBtnClick, 'destroy')\n\n util.once(player, 'autoplay was prevented', () => {\n setTimeout(() => {\n path.setAttribute('d', iconPath.pause)\n Player.util.addClass(player.root, 'xgplayer-nostart')\n }, 500)\n })\n\n player.onElementClick = function (e, element) {\n e.preventDefault()\n e.stopPropagation()\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 (util.hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n player.play()\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 e.preventDefault()\n e.stopPropagation()\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 mouseenterFunc () {\n clearTimeout(player.leavePlayerTimer)\n player.emit('focus', player)\n }\n root.addEventListener('mouseenter', mouseenterFunc, false)\n\n function mouseleaveFunc () {\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', mouseleaveFunc)\n\n function cmouseenterFunc (e) {\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n }\n controls.addEventListener('mouseenter', cmouseenterFunc)\n\n function cmouseleaveFunc (e) {\n if (!player.config.closeControlsBlur) {\n player.emit('focus', player)\n }\n }\n controls.addEventListener('mouseleave', cmouseleaveFunc)\n\n function readyFunc (e) {\n if (player.config.autoplay) {\n player.start()\n }\n }\n util.once(player, 'ready', readyFunc)\n\n function destroyFunc () {\n root.removeEventListener('mouseenter', mouseenterFunc)\n root.removeEventListener('mouseleave', mouseleaveFunc)\n }\n util.once(player, 'destroy', destroyFunc)\n}\n\nexport default {\n name: 'pc',\n method: pc\n}","import Player from '../player'\nimport SVG from '../utils/svg'\nimport '../style/player/mobile.scss'\n\nlet whitelistPass = (list) => {\n let util = Player.util\n return list.some(item => {\n if (util.typeOf(item) === 'Function') {\n return item.call(this, navigator.userAgent)\n } else if (util.typeOf(item) === 'RegExp') {\n return item.test(navigator.userAgent)\n } else if (util.typeOf(item) === 'String') {\n return navigator.userAgent.indexOf(item) > -1\n } else {\n return false\n }\n })\n}\n\nlet debug = (config) => {\n let options = {}\n Object.assign(options, {\n host: '127.0.0.1',\n port: 9090\n }, config)\n let script = document.createElement('script')\n let h4 = document.createElement('h4')\n h4.style.cssText = 'position:fixed;bottom:0;padding:10px;width:100%;background-color:#fff;text-align:center'\n h4.textContent = `weinre --boundHost ${options.host} --httpPort ${options.port}\\r\\n 启动服务后,刷新页面`\n script.anonymous = true\n script.async = true\n script.src = `http://${options.host}:${options.port}/target/target-script-min.js#anonymous`\n script.onload = function () {\n h4.parentNode.removeChild(h4)\n }\n document.body.appendChild(script)\n document.body.appendChild(h4)\n}\n\nlet mobile = function () {\n let player = this\n\n let util = Player.util; let root = player.root\n // player.config.autoplay = false\n let whitelist = player.config.whitelist\n let pass = whitelistPass(whitelist)\n player.mobilePass = pass\n let centerBtn = player.config.centerBtn ? player.config.centerBtn : {}\n let iconPath, btn, path, svg\n if (centerBtn.type === 'img') {\n btn = Player.util.createImgBtn('start', centerBtn.url.play, centerBtn.width, centerBtn.height)\n } else {\n iconPath = {\n pause: centerBtn.pausePath ? centerBtn.pausePath : 'M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z',\n play: centerBtn.playPath ? centerBtn.playPath : 'M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z'\n }\n btn = util.createDom('xg-start', `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(0.04,0.04)\" d=\"${iconPath.pause}\"></path>\n </svg>`, {}, 'xgplayer-start')\n path = btn.querySelector('path')\n svg = new SVG({\n from: iconPath.play,\n to: iconPath.pause,\n progress: (shape, percent) => {\n path.setAttribute('d', svg.toSVGString(shape))\n }\n })\n }\n\n let enter = util.createDom('xg-enter', '<xg-enter-logo class=\"xgplayer-enter-logo\"></xg-enter-logo><xg-enter-tips class=\"xgplayer-enter-tips\"></xg-player-tips>', {}, 'xgplayer-enter')\n let logo = enter.querySelector('.xgplayer-enter-logo')\n root.appendChild(btn)\n root.appendChild(enter)\n let enterTips = enter.querySelector('.xgplayer-enter-tips')\n let enterLogo = new Image()\n enterLogo.onload = () => {\n enterTips.style.display = 'block'\n }\n if (player.config.enterLogo && player.config.enterLogo.url && player.config.enterLogo.width && player.config.enterLogo.height) {\n enterLogo.src = player.config.enterLogo.url\n\n logo.style.backgroundImage = `url(\"${player.config.enterLogo.url}\")`\n logo.style.width = `${player.config.enterLogo.width}px`\n logo.style.height = `${player.config.enterLogo.height}px`\n\n logo.style.backgroundSize = `${player.config.enterLogo.width}px ${player.config.enterLogo.height}px`\n logo.style.margin = `-${player.config.enterLogo.height / 2}px auto auto -${player.config.enterLogo.width / 2}px`\n\n enterTips.style.margin = `${player.config.enterLogo.height - 6}px auto auto -62px`\n } else {\n // enterLogo.src = util.getBgImage(logo)\n }\n\n if (player.config.enterTips && player.config.enterTips.background) {\n enterTips.style.background = `${player.config.enterTips.background}`\n }\n\n if (player.config.enterBg) {\n if (player.config.enterBg.url) {\n enter.style.backgroundImage = `url(\"${player.config.enterBg.url}\")`\n } else if (player.config.enterBg.color) {\n enter.style.background = player.config.enterBg.color\n }\n }\n if (player.config.autoplay) {\n player.start()\n }\n if (pass) {\n player.video.addEventListener('touchend', (e) => {\n e.preventDefault()\n if (util.hasClass(root, 'xgplayer-inactive')) {\n player.emit('focus')\n } else {\n player.emit('blur')\n }\n if (!player.config.closeVideoTouch && !player.isTouchMove) {\n if (!player.ended) {\n if (player.paused) {\n player.play()\n } else {\n player.pause()\n }\n }\n }\n })\n player.video.addEventListener('touchstart', () => {\n player.isTouchMove = false\n })\n player.video.addEventListener('touchmove', () => {\n player.isTouchMove = true\n })\n btn.addEventListener('touchend', (e) => {\n e.preventDefault()\n if (util.hasClass(root, 'xgplayer-nostart')) {\n util.removeClass(root, 'xgplayer-nostart')\n util.addClass(root, 'xgplayer-is-enter')\n util.on(player, 'canplay', () => {\n player.play()\n util.removeClass(root, 'xgplayer-is-enter')\n }, 'destroy')\n util.once(player, 'playing', () => {\n util.removeClass(root, 'xgplayer-is-enter')\n })\n if(player.root.querySelector('video')) {\n player.play()\n } else {\n player.start()\n }\n } else {\n if (player.paused) {\n player.play()\n } else {\n player.pause()\n }\n }\n })\n util.on(player, 'play', () => {\n if (centerBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${centerBtn.url.pause}\")`\n } else {\n svg.reset(iconPath.play, iconPath.pause)\n }\n }, 'destroy')\n util.on(player, 'pause', () => {\n if (centerBtn.type === 'img') {\n btn.style.backgroundImage = `url(\"${centerBtn.url.play}\")`\n } else {\n svg.reset(iconPath.pause, iconPath.play)\n }\n }, 'destroy')\n } else {\n util.addClass(root, 'xgplayer-mobile-npassed')\n util.once(player, 'ready', () => {\n player.video.controls = player.config.controls\n player.video.controlsList = player.config.controlsList.join(' ')\n if (player.config.poster) {\n player.video.poster = player.config.poster\n }\n })\n }\n if (player.config.debug) {\n debug(player.config.debug)\n }\n}\n\nexport default {\n name: 'mobile',\n method: mobile\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!./mobile.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!./mobile.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!./mobile.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-mobile .xgplayer-progress-btn{display:block}.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer{height:3px;margin-top:8.5px}.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-dot{height:3px}.xgplayer-mobile.xgplayer-ended .xgplayer-start,.xgplayer-mobile.xgplayer-ended .xgplayer-start-img,.xgplayer-mobile.xgplayer-inactive .xgplayer-start,.xgplayer-mobile.xgplayer-inactive .xgplayer-start-img{display:none}.xgplayer-mobile .xgplayer-start{width:60px;height:60px;line-height:60px;display:none;margin:-50px auto auto -30px}.xgplayer-mobile .xgplayer-start svg{margin:10px}.xgplayer-mobile .xgplayer-start-img{display:none}.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-mobile.xgplayer-nostart .xgplayer-start{margin:-30px auto auto -30px;display:block}.xgplayer-mobile.xgplayer-nostart .xgplayer-start-img{display:block}.xgplayer-mobile .xgplayer-loading{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.xgplayer-mobile.xgplayer-mobile-npassed .xgplayer-controls,.xgplayer-mobile.xgplayer-mobile-npassed .xgplayer-poster,.xgplayer-mobile.xgplayer-mobile-npassed .xgplayer-start,.xgplayer-mobile.xgplayer-mobile-npassed .xgplayer-start-img{display:none}\", \"\"]);\n\n// exports\n","import Player from '../player'\n\nlet localPreview = function () {\n let player = this; let util = Player.util\n let preview = util.createDom('xg-preview', '<input type=\"file\">', {}, 'xgplayer-preview')\n let upload = preview.querySelector('input')\n if (player.config.preview && player.config.preview.uploadEl) {\n player.config.preview.uploadEl.appendChild(preview)\n upload.onchange = function () {\n player.uploadFile = upload.files[0]\n let url = URL.createObjectURL(player.uploadFile)\n if (util.hasClass(player.root, 'xgplayer-nostart')) {\n player.config.url = url\n player.start()\n } else {\n player.src = url\n player.play()\n }\n }\n }\n}\n\nexport default {\n name: 'localPreview',\n method: localPreview\n}","import Player from '../player'\nimport '../style/player/loading.scss'\n\nlet loading = function () {\n let player = this; let util = Player.util; let container = util.createDom('xg-loading', `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewbox=\"0 0 100 100\">\n <path d=\"M100,50A50,50,0,1,1,50,0\"></path>\n </svg>\n `, {}, 'xgplayer-loading')\n player.root.appendChild(container)\n}\n\nexport default {\n name: 'loading',\n method: loading\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-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:-70px auto auto -50px}.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-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-nostart .xgplayer-loading{display:none}.xgplayer-isloading .xgplayer-loading{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\n\nconst {util} = Player\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 util.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)) {\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 (state.repeat % 2 === 0 && !player.config.disableLongPress) {\n this.handlerKeyCode(state.keyCode, true)\n }\n state.repeat++\n }\n }\n\n handlerKeyCode (keyCode, isLonePress) {\n const {player, state} = this\n if (!player.config.keyShortcut || player.config.keyShortcut === 'on') {\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 if(player.ended){\n player.replay(player.config.startTimeCache || 0);\n }else{\n player.paused ? player.play() : player.pause();\n }\n }\n break\n default:\n //\n }\n }\n }\n\n seek (isBack, isLongPress) {\n const {player} = this\n if (player.isLoading || player.isSeeking || (isLongPress && this.state.repeat % 8 > 0)) {\n return\n }\n if (isBack) {\n if (player.currentTime - 10 >= 0) {\n player.seek(player.currentTime - 10)\n } else {\n player.seek(0)\n }\n } else {\n if (player.currentTime + 10 <= player.duration) {\n player.seek(player.currentTime + 10)\n } else {\n player.seek(player.duration - 1)\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 (!util.hasClass(player.root, 'xgplayer-volume-active')) {\n util.addClass(player.root, 'xgplayer-volume-active')\n }\n } else {\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n util.removeClass(player.root, 'xgplayer-volume-active')\n }, 1000)\n }\n }\n\n changeVolume (isup) {\n const {player} = this\n this.changeVolumeSlide(true)\n const volume = player.volume\n if (isup) {\n if(volume + 0.1 <= 1) {\n player.volume = volume + 0.1\n } else {\n player.volume = 1\n }\n } else {\n if(volume - 0.1 >= 0) {\n player.volume = volume - 0.1\n } else {\n player.volume = 0\n }\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 Player from '../player'\n\nlet i18n = function () {\n let player = this; let lang = {}; let util = player.constructor.util\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 }\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 }\n\n Object.defineProperty(player, 'lang', {\n get: function () {\n return lang[player.config.lang] || lang['en']\n },\n set: function (value) {\n if (util.typeOf(value) === 'Object') {\n Object.keys(value).forEach(key => {\n lang[key] = value[key]\n })\n }\n },\n configurable: true\n })\n}\n\nexport default {\n name: 'i18n',\n method: i18n\n}","import Player from '../player'\nimport '../style/player/fullscreen.scss'\n\nlet fullscreen = function () {\n let player = this; let util = Player.util\n let scale = 0.03\n let iconPath = {\n active: 'M682 342h128v84h-212v-212h84v128zM598 810v-212h212v84h-128v128h-84zM342 342v-128h84v212h-212v-84h128zM214 682v-84h212v212h-84v-128h-128z',\n default: 'M598 214h212v212h-84v-128h-128v-84zM726 726v-128h84v212h-212v-84h128zM214 426v-212h212v84h-128v128h-84zM298 598v128h128v84h-212v-212h84z'\n }\n let btn = util.createDom('xg-fullscreen', `<xg-icon class=\"xgplayer-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"${iconPath.default}\"></path>\n </svg></xg-icon>`, {}, 'xgplayer-fullscreen')\n let tipsFull = player.config.lang && player.config.lang === 'zh-cn' ? '全屏' : 'Full screen'\n let tipsExitFull = player.config.lang && player.config.lang === 'zh-cn' ? '退出全屏' : 'Exit full screen'\n let root = player.controls; let container = player.root\n let tips = util.createDom('xg-tips', tipsFull, {}, 'xgplayer-tips')\n let path = btn.querySelector('path')\n btn.appendChild(tips)\n function getFullscreen (el) {\n let cssfullscreenDom = util.findDom(player.controls, 'xg-cssfullscreen')\n if (cssfullscreenDom) {\n cssfullscreenDom.style.display = 'none'\n }\n path.setAttribute('d', iconPath.active)\n tips.textContent = tipsExitFull\n if (el.requestFullscreen) {\n el.requestFullscreen()\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen()\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen(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 util.addClass(el, 'xgplayer-fullscreen-active')\n }\n }\n function exitFullscreen (el) {\n let cssfullscreenDom = util.findDom(player.controls, 'xg-cssfullscreen')\n let cssIconPath = {\n default: 'M843.617212 67.898413 175.411567 67.898413c-61.502749 0-111.367437 49.856501-111.367437 111.367437l0 668.205645c0 61.510936 49.864688 111.367437 111.367437 111.367437L843.617212 958.838931c61.510936 0 111.367437-49.856501 111.367437-111.367437L954.984648 179.26585C954.984648 117.754914 905.12917 67.898413 843.617212 67.898413zM398.146441 736.104057c15.380292 0 27.842115 12.461823 27.842115 27.842115 0 15.379269-12.461823 27.841092-27.842115 27.841092L259.725858 791.787264c-7.785314 0-14.781658-3.217275-19.838837-8.365528-5.383614-4.577249-8.791224-11.228739-8.791224-19.475564L231.095797 624.736621c0-15.371082 12.471033-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115l-0.61603 71.426773 133.036969-133.037992 39.378869 39.378869L324.962651 736.113267 398.146441 736.104057zM419.199942 463.611943 286.162974 330.565764l0.61603 71.435982c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.371082 0-27.842115-12.461823-27.842115-27.842115L231.094774 262.791172c0-8.256034 3.40761-14.908548 8.791224-19.476587 5.057179-5.148253 12.053524-8.374738 19.838837-8.374738l138.420583 0.00921c15.380292 0 27.842115 12.461823 27.842115 27.842115s-12.461823 27.842115-27.842115 27.842115l-73.175603-0.00921 133.607974 133.607974L419.199942 463.611943zM787.932981 763.946172c0 8.247848-3.40761 14.899338-8.791224 19.475564-5.057179 5.148253-12.053524 8.365528-19.839861 8.365528L620.881314 791.787264c-15.379269 0-27.841092-12.461823-27.841092-27.841092 0-15.380292 12.461823-27.842115 27.841092-27.842115l73.185836 0.00921L560.449967 602.50427l39.378869-39.378869L732.875015 696.163393l-0.62524-71.426773c0-15.371082 12.462846-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115L787.934005 763.946172zM787.932981 402.000724c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.379269 0-27.842115-12.461823-27.842115-27.842115l0.62524-71.435982L599.828836 463.611943l-39.378869-39.378869 133.617184-133.607974-73.185836 0.00921c-15.379269 0-27.841092-12.461823-27.841092-27.842115s12.461823-27.842115 27.841092-27.842115l138.421606-0.00921c7.785314 0 14.781658 3.226484 19.839861 8.374738 5.383614 4.568039 8.791224 11.219529 8.791224 19.476587L787.934005 402.000724z'\n }\n if (cssfullscreenDom) {\n let cssfullscreentTip = util.findDom(cssfullscreenDom, 'xg-tips')\n let cssPath = cssfullscreenDom.querySelector('path')\n cssfullscreenDom.style.display = 'block'\n cssfullscreentTip.textContent = player.config.lang && player.config.lang === 'zh-cn' ? '样式全屏' : 'Full screen'\n cssPath.setAttribute('d', cssIconPath.default)\n }\n util.removeClass(el, 'xgplayer-cssfullscreen-active')\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\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 } else {\n util.removeClass(el, 'xgplayer-fullscreen-active')\n }\n }\n function getRotateFullscreen () {\n path.setAttribute('d', iconPath.active)\n tips.textContent = tipsExitFull\n\n document.documentElement.style.width = '100%'\n document.documentElement.style.height = '100%'\n if (container && !util.hasClass(container, 'xgplayer-rotate-fullscreen')) {\n util.addClass(container, 'xgplayer-rotate-fullscreen')\n }\n player.emit('getRotateFullscreen')\n }\n function exitRotateFullscreen () {\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\n\n document.documentElement.style.width = 'unset'\n document.documentElement.style.height = 'unset'\n if (container && util.hasClass(container, 'xgplayer-rotate-fullscreen')) {\n util.removeClass(container, 'xgplayer-rotate-fullscreen')\n }\n player.emit('exitRotateFullscreen')\n }\n\n root.appendChild(btn);\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (player.config.rotateFullscreen) {\n if (util.hasClass(container, 'xgplayer-rotate-fullscreen')) {\n exitRotateFullscreen()\n } else {\n getRotateFullscreen()\n }\n } else {\n if (util.hasClass(container, 'xgplayer-fullscreen-active') || util.hasClass(container, 'xgplayer-is-fullscreen')) {\n exitFullscreen(container)\n } else {\n getFullscreen(container)\n }\n }\n })\n })\n player.video.addEventListener('webkitendfullscreen', () => {\n player.emit('exitFullscreen')\n path.setAttribute('d', iconPath.default)\n })\n\n function handle (e) {\n let fullscreenEl = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement\n if (fullscreenEl && fullscreenEl === container) {\n util.addClass(container, 'xgplayer-is-fullscreen')\n path.setAttribute('d', iconPath.active)\n tips.textContent = tipsExitFull\n player.emit('requestFullscreen')\n } else {\n util.removeClass(container, 'xgplayer-is-fullscreen')\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\n player.emit('exitFullscreen')\n }\n\n if (!document.fullscreenElement && !document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement) {\n let cssfullscreenDom = util.findDom(player.controls, 'xg-cssfullscreen')\n let cssIconPath = {\n default: 'M843.617212 67.898413 175.411567 67.898413c-61.502749 0-111.367437 49.856501-111.367437 111.367437l0 668.205645c0 61.510936 49.864688 111.367437 111.367437 111.367437L843.617212 958.838931c61.510936 0 111.367437-49.856501 111.367437-111.367437L954.984648 179.26585C954.984648 117.754914 905.12917 67.898413 843.617212 67.898413zM398.146441 736.104057c15.380292 0 27.842115 12.461823 27.842115 27.842115 0 15.379269-12.461823 27.841092-27.842115 27.841092L259.725858 791.787264c-7.785314 0-14.781658-3.217275-19.838837-8.365528-5.383614-4.577249-8.791224-11.228739-8.791224-19.475564L231.095797 624.736621c0-15.371082 12.471033-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115l-0.61603 71.426773 133.036969-133.037992 39.378869 39.378869L324.962651 736.113267 398.146441 736.104057zM419.199942 463.611943 286.162974 330.565764l0.61603 71.435982c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.371082 0-27.842115-12.461823-27.842115-27.842115L231.094774 262.791172c0-8.256034 3.40761-14.908548 8.791224-19.476587 5.057179-5.148253 12.053524-8.374738 19.838837-8.374738l138.420583 0.00921c15.380292 0 27.842115 12.461823 27.842115 27.842115s-12.461823 27.842115-27.842115 27.842115l-73.175603-0.00921 133.607974 133.607974L419.199942 463.611943zM787.932981 763.946172c0 8.247848-3.40761 14.899338-8.791224 19.475564-5.057179 5.148253-12.053524 8.365528-19.839861 8.365528L620.881314 791.787264c-15.379269 0-27.841092-12.461823-27.841092-27.841092 0-15.380292 12.461823-27.842115 27.841092-27.842115l73.185836 0.00921L560.449967 602.50427l39.378869-39.378869L732.875015 696.163393l-0.62524-71.426773c0-15.371082 12.462846-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115L787.934005 763.946172zM787.932981 402.000724c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.379269 0-27.842115-12.461823-27.842115-27.842115l0.62524-71.435982L599.828836 463.611943l-39.378869-39.378869 133.617184-133.607974-73.185836 0.00921c-15.379269 0-27.841092-12.461823-27.841092-27.842115s12.461823-27.842115 27.841092-27.842115l138.421606-0.00921c7.785314 0 14.781658 3.226484 19.839861 8.374738 5.383614 4.568039 8.791224 11.219529 8.791224 19.476587L787.934005 402.000724z'\n }\n if (cssfullscreenDom) {\n let cssfullscreentTip = util.findDom(cssfullscreenDom, 'xg-tips')\n let cssPath = cssfullscreenDom.querySelector('path')\n cssfullscreenDom.style.display = 'block'\n cssfullscreentTip.textContent = player.config.lang && player.config.lang === 'zh-cn' ? '样式全屏' : 'Full screen'\n cssPath.setAttribute('d', cssIconPath.default)\n }\n util.removeClass(container, 'xgplayer-cssfullscreen-active')\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\n util.removeClass(container, 'xgplayer-fullscreen-active')\n }\n }\n\n btn.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n tips.style.left = '50%'\n let rect = tips.getBoundingClientRect()\n let rootRect = container.getBoundingClientRect()\n if (rect.right > rootRect.right) {\n tips.style.left = `${-rect.right + rootRect.right + 16}px`\n }\n });\n\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.addEventListener(item, handle)\n })\n\n function destroyFunc () {\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.removeEventListener(item, handle)\n })\n }\n util.once(player, 'destroy', destroyFunc)\n}\n\nexport default {\n name: 'fullscreen',\n method: fullscreen\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-fullscreen{-webkit-order:12;-moz-box-ordinal-group:13;order:12;position:relative;display:inline-block;cursor:pointer}.xgplayer-fullscreen .xgplayer-icon{margin:4px -4px 0 0}.xgplayer-fullscreen:hover .xgplayer-tips{display:block}.xgplayer.xgplayer-fullscreen-active{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}\", \"\"]);\n\n// exports\n","import Player from '../player'\n\nlet flex = function () {\n let player = this; let util = Player.util\n let playceholder = util.createDom('xg-placeholder', '', {}, 'xgplayer-placeholder')\n player.controls.appendChild(playceholder)\n}\n\nexport default {\n name: '__flex__',\n method: flex\n}","import Player from '../player'\nimport '../style/player/error.scss'\n\nlet error = function () {\n let player = this; let util = Player.util; let error = util.createDom('xg-error', '<em class=\"xgplayer-error-text\">请<span class=\"xgplayer-error-refresh\">刷新</span>试试</em>', {}, 'xgplayer-error')\n player.root.appendChild(error)\n let text = error.querySelector('.xgplayer-error-text')\n let refresh = null\n\n function errorFunc () {\n // player.controls.style.display = 'none'\n if (player.error) {\n text.innerHTML = player.error\n } else {\n if (player.config.lang && player.config.lang === 'zh-cn') {\n text.innerHTML = `${player.lang.ERROR},请<span class=\"xgplayer-error-refresh\">刷新</span>试试`\n } else {\n text.innerHTML = `${player.lang.ERROR},please try to <span class=\"xgplayer-error-refresh\">refresh</span>`\n }\n }\n\n util.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 let p = e.target || e.srcElement\n if (p && p.tagName.toLocaleLowerCase() === 'span') {\n player.controls.style.display = 'flex'\n player.reload()\n }\n })\n })\n }\n }\n util.on(player, 'error', errorFunc, 'destroy')\n}\n\nexport default {\n name: 'error',\n method: error\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-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1200;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-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-is-error .xgplayer-error{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport {getAbsoluteURL} from '../utils/url'\nimport downloadUtil from 'downloadjs'\nimport '../style/player/download.scss'\n\nconst download = function () {\n const player = this\n if (!this.config.download) { return }\n let container = player.root\n let util = Player.util\n let downloadEl = util.createDom('xgplayer-download', `<xg-icon class=\"xgplayer-download-img\"></xg-icon>`, {}, 'xgplayer-download')\n\n let root = player.controls\n root.appendChild(downloadEl)\n\n let tipsDownload = player.config.lang && player.config.lang === 'zh-cn' ? '下载' : 'Download'\n let tips = util.createDom('xg-tips', tipsDownload, {}, 'xgplayer-tips')\n downloadEl.appendChild(tips)\n\n player.download = function() {\n const url = getAbsoluteURL(player.config.url)\n downloadUtil(url)\n }\n downloadEl.addEventListener('click', (e) => {\n e.stopPropagation()\n // must pass an absolute url for download\n player.download();\n })\n\n downloadEl.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n tips.style.left = '50%'\n let rect = tips.getBoundingClientRect()\n let rootRect = container.getBoundingClientRect()\n if (rect.right > rootRect.right) {\n tips.style.left = `${-rect.right + rootRect.right + 16}px`\n }\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","//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","\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-download{position:relative;width:36px;height:40px;-webkit-order:8;-moz-box-ordinal-group:9;order:8;cursor:pointer}.xgplayer-inactive .xgplayer-download,.xgplayer-nostart .xgplayer-download{display:none}.xgplayer-download:hover .xgplayer-tips{display:block}.xgplayer-download-img{display:inline-block;width:24px;height:24px;margin-top:7px!important;margin-left:4px!important;background:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23FFF' fill-rule='evenodd'%3E%3Crect x='11' y='4' width='2' height='12' rx='1'/%3E%3Crect x='3' y='18' width='18' height='2' rx='1'/%3E%3Crect transform='rotate(90 4 17.5)' x='1.5' y='16.5' width='5' height='2' rx='1'/%3E%3Crect transform='rotate(90 20 17.5)' x='17.5' y='16.5' width='5' height='2' rx='1'/%3E%3Cpath d='M11.988 14.3l-4.243-4.242a1 1 0 0 0-1.414 1.414l4.95 4.95a1 1 0 0 0 1.414 0l4.95-4.95a1 1 0 1 0-1.414-1.414L11.988 14.3z'/%3E%3C/g%3E%3C/svg%3E\\\") no-repeat 50%/100% 100%}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/definition.scss'\n\nlet definition = function () {\n let player = this; let util = Player.util; let sniffer = Player.sniffer\n let ul = util.createDom('xg-definition', '', {tabindex: 3}, 'xgplayer-definition'); let root = player.controls\n if (sniffer.device === 'mobile') {\n player.config.definitionActive = 'click'\n }\n function canplayDefiFunc () {\n let list = player.definitionList\n let tmp = ['<ul>']; let src = player.config.url; let 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 ? 'definition' : ''}'>${item.name}</li>`)\n } else {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${a.href === src ? 'definition' : ''}'>${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 util.addClass(player.root, 'xgplayer-definition-active')\n urlInRoot.focus()\n })\n }\n } else {\n ul.innerHTML = tmp.join('')\n let cur = ul.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(player.root, 'xgplayer-definition-active')\n ul.focus()\n })\n }\n root.appendChild(ul)\n }\n }\n function resourceReadyFunc (list) {\n player.definitionList = list\n if (list && list instanceof Array && list.length > 1) {\n util.addClass(player.root, 'xgplayer-is-definition')\n util.once(player, 'canplay', canplayDefiFunc, 'destroy')\n }\n }\n util.on(player, 'resourceReady', resourceReadyFunc, 'destroy');\n\n ['touchend', 'click'].forEach(item => {\n ul.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let list = player.definitionList\n let li = e.target || e.srcElement; let a = document.createElement('a')\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n let from = ''\n let to = li.getAttribute('cname')\n player.emit('beforeDefinitionChange', a.href)\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if (util.hasClass(item, 'definition')) {\n from = item.getAttribute('cname')\n util.removeClass(item, 'definition')\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 util.addClass(li, 'definition')\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}`\n a.href = li.getAttribute('url')\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 let curTime = player.currentTime; let paused = player.paused\n if (!player.ended) {\n player.src = a.href\n util.once(player, 'canplay', () => {\n player.currentTime = curTime\n if (!paused) {\n player.play()\n }\n })\n }\n }\n }\n player.emit('definitionChange', {from, to})\n if (sniffer.device === 'mobile') {\n util.removeClass(player.root, 'xgplayer-definition-active')\n }\n } else if (player.config.definitionActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n util.addClass(player.root, 'xgplayer-definition-active')\n ul.focus()\n }\n player.emit('focus')\n }, false)\n })\n\n ul.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-definition-active')\n })\n}\n\nexport default {\n name: 'definition',\n method: definition\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-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;margin-bottom:11px}.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.xgplayer-definition-active .xgplayer-definition ul{display:block}.xgplayer-definition ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-definition ul li.definition,.xgplayer-definition ul li:hover{color:#fff;opacity:1}.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-is-definition .xgplayer-definition{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport DanmuJs from 'danmu.js'\nimport util from '../utils/util'\nimport '../style/player/bullet.scss'\n\nlet danmu = function () {\n let player = this\n if (player.config.danmu) {\n let container = Player.util.createDom('xg-bullet', '', {}, 'xgplayer-bullet')\n player.root.appendChild(container)\n container.style.height = '100%'\n let config = Player.util.deepCopy({\n container,\n // containerStyle: {\n // zIndex: 9\n // },\n player: player.video,\n comments: [],\n area: {\n start: 0,\n end: 1\n }\n }, player.config.danmu)\n\n let onComplete = () => {\n let danmujs = new DanmuJs(config)\n Player.util.addClass(container, 'xgplayer-has-bullet')\n\n if (!player.config.danmu.closeDefaultBtn) {\n player.bulletBtn = Player.util.copyDom(danmujs.bulletBtn.createSwitch(true))\n player.controls.appendChild(player.bulletBtn);\n\n ['click', 'touchend'].forEach(item => {\n player.bulletBtn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n Player.util.toggleClass(player.bulletBtn, 'danmu-switch-active')\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n Player.util.addClass(container, 'xgplayer-has-bullet')\n util.once(player, 'timeupdate', () => {\n danmujs.start()\n })\n } else {\n Player.util.removeClass(container, 'xgplayer-has-bullet')\n danmujs.stop()\n }\n }, false)\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 let onWaiting = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.pause()\n }\n }\n util.on(player, 'waiting', onWaiting, 'destroy')\n\n let onPause = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.pause()\n }\n }\n util.on(player, 'pause', onPause, 'destroy')\n\n let onPlay = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.play()\n }\n }\n util.on(player, 'play', onPlay, 'destroy')\n\n let onPlaying = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.play()\n }\n }\n util.on(player, 'playing', onPlaying, 'destroy')\n\n let onSeeked = () => {\n if (Player.util.hasClass(player.bulletBtn, 'danmu-switch-active')) {\n danmujs.stop()\n danmujs.start()\n }\n }\n util.on(player, 'seeked', onSeeked, 'destroy')\n\n util.once(danmujs, 'destroy', () => {\n player.off('waiting', onWaiting)\n player.off('pause', onPause)\n player.off('play', onPlay)\n player.off('playing', onPlaying)\n player.off('seeked', onSeeked)\n })\n }\n\n player.danmu = danmujs\n player.emit('initDefaultDanmu', danmujs)\n }\n util.once(player, 'complete', onComplete)\n }\n}\n\nexport default {\n name: 'danmu',\n method: danmu\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)),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();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))&&!i.bulletCreateFail)if(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}}function s(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 l=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=s(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,i.reuseDOM=!0;var o=i,a=void 0;if(i.domObj=e.domObj,n.el&&1===n.el.nodeType){if(n.el.parentNode)return s(i,{bulletCreateFail:!0});if(e.config.disableCopyDOM)a=n.el,i.reuseDOM=!1;else{a=i.domObj.use();var l=r.default.copyDom(n.el);n.eventListeners&&n.eventListeners.length>0&&n.eventListeners.forEach((function(e){l.addEventListener(e.event,e.listener,e.useCapture||!1)})),a.appendChild(l)}}else(a=i.domObj.use()).textContent=n.txt;if(i.onChangeDirection=function(e){o.direction=e},i.danmu.on(\"changeDirection\",i.onChangeDirection),n.style){var u=n.style;Object.keys(u).forEach((function(e){r.default.style(a,e,u[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 c=i.container.getBoundingClientRect(),f=Math.floor(Math.random()*(c.width/10>100?200:c.width/10));n.realTime&&(f=0);var h=c.width+f+\"px\";return r.default.style(i.el,\"left\",h),i.containerPos=c,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.reuseDOM&&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.options.el&&1===this.options.el.nodeType&&this.danmu.config.disableCopyDOM&&r.default.style(this.options.el,\"transform\",\"none\"),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=l,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.6.3\"}')},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","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!./bullet.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!./bullet.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!./bullet.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, \".danmu-switch{-webkit-order:6;-moz-box-ordinal-group:7;order:6;z-index:26;margin:10px auto}.xgplayer-bullet{display:none;position:absolute;top:0;left:0;right:0;height:100%;overflow:hidden;z-index:9;outline:none}.xgplayer-bullet>*{position:absolute;white-space:nowrap;z-index:9}.xgplayer-has-bullet{display:block}\", \"\"]);\n\n// exports\n","import Player from '../player'\nimport '../style/player/cssFullscreen.scss'\n\nlet cssFullscreen = function () {\n let player = this; let util = Player.util\n let scale = 0.03\n if (!player.config.cssFullscreen) {\n return\n }\n let iconPath = {\n active: 'M834.56 81.92H189.44c-59.392 0-107.52 48.128-107.52 107.52v645.12c0 59.392 48.128 107.52 107.52 107.52h645.12c59.392 0 107.52-48.128 107.52-107.52V189.44c0-59.392-48.128-107.52-107.52-107.52zM458.24 727.04c0 14.848-12.288 26.624-26.624 26.624S404.48 741.888 404.48 727.04v-69.632L289.28 773.12c-10.752 10.24-27.648 10.24-37.888 0-10.24-10.752-10.24-27.648 0-37.888L366.592 619.52H296.96c-14.848 0-26.624-12.288-26.624-26.624s12.288-26.624 26.624-26.624h134.144c14.848 0 26.624 12.288 26.624 26.624V727.04z m0-295.936c0 14.848-12.288 26.624-26.624 26.624H296.96c-14.848 0-26.624-12.288-26.624-26.624S282.112 404.48 296.96 404.48h69.632L251.392 289.28c-10.24-10.752-10.24-27.648 0-37.888 5.12-5.12 12.288-7.68 18.944-7.68 6.656 0 13.824 2.56 18.944 7.68L404.48 366.592V296.96c0-14.848 12.288-26.624 26.624-26.624s26.624 12.288 26.624 26.624v134.144zM773.12 773.12c-10.752 10.24-27.648 10.24-37.888 0L619.52 657.408V727.04c0 14.848-12.288 26.624-26.624 26.624s-26.624-11.776-26.624-26.624v-134.144c0-14.848 12.288-26.624 26.624-26.624H727.04c14.848 0 26.624 12.288 26.624 26.624s-12.288 26.624-26.624 26.624h-69.632l115.2 115.2c10.752 10.752 10.752 27.648 0.512 38.4z m0-483.84L657.408 404.48H727.04c14.848 0 26.624 12.288 26.624 26.624 0 14.848-12.288 26.624-26.624 26.624h-134.144c-14.848 0-26.624-12.288-26.624-26.624V296.96c0-14.848 12.288-26.624 26.624-26.624s26.624 12.288 26.624 26.624v69.632L734.72 250.88c5.12-5.12 12.288-7.68 18.944-7.68s13.824 2.56 18.944 7.68c10.752 10.752 10.752 27.648 0.512 38.4z',\n default: 'M843.617212 67.898413 175.411567 67.898413c-61.502749 0-111.367437 49.856501-111.367437 111.367437l0 668.205645c0 61.510936 49.864688 111.367437 111.367437 111.367437L843.617212 958.838931c61.510936 0 111.367437-49.856501 111.367437-111.367437L954.984648 179.26585C954.984648 117.754914 905.12917 67.898413 843.617212 67.898413zM398.146441 736.104057c15.380292 0 27.842115 12.461823 27.842115 27.842115 0 15.379269-12.461823 27.841092-27.842115 27.841092L259.725858 791.787264c-7.785314 0-14.781658-3.217275-19.838837-8.365528-5.383614-4.577249-8.791224-11.228739-8.791224-19.475564L231.095797 624.736621c0-15.371082 12.471033-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115l-0.61603 71.426773 133.036969-133.037992 39.378869 39.378869L324.962651 736.113267 398.146441 736.104057zM419.199942 463.611943 286.162974 330.565764l0.61603 71.435982c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.371082 0-27.842115-12.461823-27.842115-27.842115L231.094774 262.791172c0-8.256034 3.40761-14.908548 8.791224-19.476587 5.057179-5.148253 12.053524-8.374738 19.838837-8.374738l138.420583 0.00921c15.380292 0 27.842115 12.461823 27.842115 27.842115s-12.461823 27.842115-27.842115 27.842115l-73.175603-0.00921 133.607974 133.607974L419.199942 463.611943zM787.932981 763.946172c0 8.247848-3.40761 14.899338-8.791224 19.475564-5.057179 5.148253-12.053524 8.365528-19.839861 8.365528L620.881314 791.787264c-15.379269 0-27.841092-12.461823-27.841092-27.841092 0-15.380292 12.461823-27.842115 27.841092-27.842115l73.185836 0.00921L560.449967 602.50427l39.378869-39.378869L732.875015 696.163393l-0.62524-71.426773c0-15.371082 12.462846-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115L787.934005 763.946172zM787.932981 402.000724c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.379269 0-27.842115-12.461823-27.842115-27.842115l0.62524-71.435982L599.828836 463.611943l-39.378869-39.378869 133.617184-133.607974-73.185836 0.00921c-15.379269 0-27.841092-12.461823-27.841092-27.842115s12.461823-27.842115 27.841092-27.842115l138.421606-0.00921c7.785314 0 14.781658 3.226484 19.839861 8.374738 5.383614 4.568039 8.791224 11.219529 8.791224 19.476587L787.934005 402.000724z'\n }\n let btn = util.createDom('xg-cssfullscreen', `<xg-icon class=\"xgplayer-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n <path transform=\"scale(${scale} ${scale})\" d=\"${iconPath.default}\"></path>\n </svg></xg-icon>`, {}, 'xgplayer-cssfullscreen')\n let tipsFull = player.config.lang && player.config.lang === 'zh-cn' ? '样式全屏' : 'Full screen'\n let tipsExitFull = player.config.lang && player.config.lang === 'zh-cn' ? '退出全屏' : 'Exit full screen'\n let root = player.controls; let container = player.root\n let tips = util.createDom('xg-tips', tipsFull, {}, 'xgplayer-tips')\n let path = btn.querySelector('path')\n btn.appendChild(tips)\n let getFullscreen = function (el) {\n path.setAttribute('d', iconPath.active)\n tips.textContent = tipsExitFull\n util.addClass(el, 'xgplayer-cssfullscreen-active')\n }\n let exitFullscreen = function (el) {\n path.setAttribute('d', iconPath.default)\n tips.textContent = tipsFull\n util.removeClass(el, 'xgplayer-cssfullscreen-active')\n }\n root.appendChild(btn);\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (util.hasClass(container, 'xgplayer-cssfullscreen-active') || util.hasClass(container, 'xgplayer-is-fullscreen')) {\n exitFullscreen(container)\n } else {\n getFullscreen(container)\n }\n })\n })\n\n btn.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n tips.style.left = '50%'\n let rect = tips.getBoundingClientRect()\n let rootRect = container.getBoundingClientRect()\n if (rect.right > rootRect.right) {\n tips.style.left = `${-rect.right + rootRect.right + 16}px`\n }\n });\n}\n\nexport default {\n name: 'cssFullscreen',\n method: cssFullscreen\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-cssfullscreen{-webkit-order:11;-moz-box-ordinal-group:12;order:11;position:relative;display:inline-block;cursor:pointer;left:6px}.xgplayer-cssfullscreen .xgplayer-icon{margin:4px -4px 0 0}.xgplayer-cssfullscreen:hover .xgplayer-tips{display:block}.xgplayer.xgplayer-cssfullscreen-active{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}\", \"\"]);\n\n// exports\n"],"sourceRoot":""}
|