xgplayer 2.32.3 → 2.32.5

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.
Files changed (113) hide show
  1. package/browser/controls/airplay.js +1 -1
  2. package/browser/controls/cssFullscreen.js +1 -1
  3. package/browser/controls/danmu.js +1 -3
  4. package/browser/controls/definition.js +1 -1
  5. package/browser/controls/download.js +1 -1
  6. package/browser/controls/enter.js +1 -1
  7. package/browser/controls/error.js +1 -1
  8. package/browser/controls/errorRetry.js +1 -1
  9. package/browser/controls/flex.js +1 -1
  10. package/browser/controls/fullscreen.js +1 -1
  11. package/browser/controls/loading.js +1 -1
  12. package/browser/controls/memoryPlay.js +1 -1
  13. package/browser/controls/miniplayer.js +7 -9
  14. package/browser/controls/mobile.js +1 -1
  15. package/browser/controls/nativeTextTrack.js +1 -1
  16. package/browser/controls/pip.js +1 -1
  17. package/browser/controls/play.js +1 -1
  18. package/browser/controls/playNext.js +1 -1
  19. package/browser/controls/playbackRate.js +1 -1
  20. package/browser/controls/poster.js +1 -1
  21. package/browser/controls/progress.js +1 -1
  22. package/browser/controls/reload.js +1 -1
  23. package/browser/controls/replay.js +1 -1
  24. package/browser/controls/rotate.js +1 -1
  25. package/browser/controls/screenShot.js +1 -1
  26. package/browser/controls/start.js +1 -1
  27. package/browser/controls/textTrack.js +1 -1
  28. package/browser/controls/time.js +1 -1
  29. package/browser/controls/volume.js +1 -1
  30. package/browser/core_player.js +1 -1
  31. package/browser/core_player.js.map +1 -1
  32. package/browser/index.js +7 -11
  33. package/browser/index.js.map +1 -1
  34. package/browser/simple_player.js +1 -1
  35. package/browser/simple_player.js.map +1 -1
  36. package/dist/controls/airplay.js +1 -1
  37. package/dist/controls/cssFullscreen.js +1 -1
  38. package/dist/controls/danmu.js +1 -3
  39. package/dist/controls/definition.js +1 -1
  40. package/dist/controls/download.js +1 -1
  41. package/dist/controls/enter.js +1 -1
  42. package/dist/controls/error.js +1 -1
  43. package/dist/controls/errorRetry.js +1 -1
  44. package/dist/controls/flex.js +1 -1
  45. package/dist/controls/fullscreen.js +1 -1
  46. package/dist/controls/loading.js +1 -1
  47. package/dist/controls/memoryPlay.js +1 -1
  48. package/dist/controls/miniplayer.js +7 -9
  49. package/dist/controls/mobile.js +1 -1
  50. package/dist/controls/nativeTextTrack.js +1 -1
  51. package/dist/controls/pip.js +1 -1
  52. package/dist/controls/play.js +1 -1
  53. package/dist/controls/playNext.js +1 -1
  54. package/dist/controls/playbackRate.js +1 -1
  55. package/dist/controls/poster.js +1 -1
  56. package/dist/controls/progress.js +1 -1
  57. package/dist/controls/reload.js +1 -1
  58. package/dist/controls/replay.js +1 -1
  59. package/dist/controls/rotate.js +1 -1
  60. package/dist/controls/screenShot.js +1 -1
  61. package/dist/controls/start.js +1 -1
  62. package/dist/controls/textTrack.js +1 -1
  63. package/dist/controls/time.js +1 -1
  64. package/dist/controls/volume.js +1 -1
  65. package/dist/core_player.js +2905 -2970
  66. package/dist/core_player.js.map +1 -1
  67. package/dist/index.js +6162 -5851
  68. package/dist/index.js.map +1 -1
  69. package/dist/simple_player.js +190 -164
  70. package/dist/simple_player.js.map +1 -1
  71. package/es/controls/airplay.js +1 -1
  72. package/es/controls/cssFullscreen.js +1 -1
  73. package/es/controls/danmu.js +1 -3
  74. package/es/controls/definition.js +1 -1
  75. package/es/controls/download.js +1 -1
  76. package/es/controls/enter.js +1 -1
  77. package/es/controls/error.js +1 -1
  78. package/es/controls/errorRetry.js +1 -1
  79. package/es/controls/flex.js +1 -1
  80. package/es/controls/fullscreen.js +1 -1
  81. package/es/controls/i18n.js +1 -1
  82. package/es/controls/keyboard.js +1 -1
  83. package/es/controls/loading.js +1 -1
  84. package/es/controls/localPreview.js +1 -1
  85. package/es/controls/memoryPlay.js +1 -1
  86. package/es/controls/miniplayer.js +7 -9
  87. package/es/controls/mobile.js +1 -1
  88. package/es/controls/nativeTextTrack.js +1 -1
  89. package/es/controls/pc.js +1 -1
  90. package/es/controls/pip.js +1 -1
  91. package/es/controls/play.js +1 -1
  92. package/es/controls/playNext.js +1 -1
  93. package/es/controls/playbackRate.js +1 -1
  94. package/es/controls/poster.js +1 -1
  95. package/es/controls/progress.js +1 -1
  96. package/es/controls/reload.js +1 -1
  97. package/es/controls/replay.js +1 -1
  98. package/es/controls/rotate.js +1 -1
  99. package/es/controls/screenShot.js +1 -1
  100. package/es/controls/start.js +1 -1
  101. package/es/controls/textTrack.js +1 -1
  102. package/es/controls/time.js +1 -1
  103. package/es/controls/volume.js +1 -1
  104. package/es/core_player.js +1 -1
  105. package/es/core_player.js.map +1 -1
  106. package/es/index.js +7 -11
  107. package/es/index.js.map +1 -1
  108. package/es/simple_player.js +1 -1
  109. package/es/simple_player.js.map +1 -1
  110. package/package.json +2 -1
  111. package/dist/index.min.css +0 -1
  112. package/dist/index.min.js +0 -2
  113. package/dist/index.min.js.map +0 -1
package/es/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://xgplayer/webpack/universalModuleDefinition","webpack://xgplayer/webpack/bootstrap","webpack://xgplayer/./src/utils/util.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/css-loader/lib/css-base.js","webpack://xgplayer/./node_modules/style-loader/lib/addStyles.js","webpack://xgplayer/./src/utils/sniffer.js","webpack://xgplayer/./src/error.js","webpack://xgplayer/./src/proxy.js","webpack://xgplayer/./src/player.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/is-value.js","webpack://xgplayer/./src/utils/xgplayerTimeRange.js","webpack://xgplayer/./src/skin/controls/i18n.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/value/is.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/event-emitter/index.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/event-emitter/all-off.js","webpack://xgplayer/./src/controls/mobile.js","webpack://xgplayer/./src/controls/pc.js","webpack://xgplayer/./src/controls/start.js","webpack://xgplayer/./src/skin/controls/start.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/d/index.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/plain-function/is.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/function/is.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/prototype/is.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/object/is.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/assign/index.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/assign/is-implemented.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/assign/shim.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/keys/index.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/keys/is-implemented.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/keys/shim.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/function/noop.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/valid-value.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/normalize-options.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/string/#/contains/index.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/string/#/contains/shim.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/valid-callable.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/valid-object.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/is-object.js","webpack://xgplayer/./src/skin/style/index.scss?8c1f","webpack://xgplayer/./src/skin/style/index.scss","webpack://xgplayer/./node_modules/style-loader/lib/urls.js","webpack://xgplayer/./src/skin/style/controls/start.scss?0c41","webpack://xgplayer/./src/skin/style/controls/start.scss","webpack://xgplayer/./src/controls/fullscreen.js","webpack://xgplayer/./src/controls/play.js","webpack://xgplayer/./src/controls/replay.js","webpack://xgplayer/./src/skin/controls/poster.js","webpack://xgplayer/./src/skin/controls/flex.js","webpack://xgplayer/./src/skin/controls/progress.js","webpack://xgplayer/./src/skin/controls/time.js","webpack://xgplayer/./src/skin/controls/play.js","webpack://xgplayer/./src/skin/controls/fullscreen.js","webpack://xgplayer/./src/skin/controls/loading.js","webpack://xgplayer/./src/skin/controls/replay.js","webpack://xgplayer/./src/skin/style/controls/play.scss?e857","webpack://xgplayer/./src/skin/style/controls/play.scss","webpack://xgplayer/./src/skin/style/controls/poster.scss?be24","webpack://xgplayer/./src/skin/style/controls/poster.scss","webpack://xgplayer/./src/skin/style/controls/placeholder.scss?564a","webpack://xgplayer/./src/skin/style/controls/placeholder.scss","webpack://xgplayer/./src/skin/style/controls/fullscreen.scss?12bf","webpack://xgplayer/./src/skin/style/controls/fullscreen.scss","webpack://xgplayer/./src/skin/style/controls/loading.scss?c41a","webpack://xgplayer/./src/skin/style/controls/loading.scss","webpack://xgplayer/./src/skin/style/controls/progress.scss?23f1","webpack://xgplayer/./src/skin/style/controls/progress.scss","webpack://xgplayer/./src/skin/style/controls/time.scss?0cc8","webpack://xgplayer/./src/skin/style/controls/time.scss","webpack://xgplayer/./src/skin/style/controls/replay.scss?041b","webpack://xgplayer/./src/skin/style/controls/replay.scss","webpack://xgplayer/./src/skin/style/controls/textTrack.scss?8fb5","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/downloadjs/download.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/draggabilly/draggabilly.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/eventemitter3/index.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/danmu.js/dist/index.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/get-size/get-size.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/unidragger/unidragger.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/unipointer/unipointer.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/ev-emitter/ev-emitter.js","webpack://xgplayer/./src/skin/style/controls/enter.scss?51e2","webpack://xgplayer/./src/skin/style/controls/enter.scss","webpack://xgplayer/./src/skin/style/controls/cssfullscreen.scss?6890","webpack://xgplayer/./src/skin/style/controls/cssfullscreen.scss","webpack://xgplayer/./src/skin/style/controls/volume.scss?ce26","webpack://xgplayer/./src/skin/style/controls/volume.scss","webpack://xgplayer/./src/skin/style/controls/definition.scss?44d9","webpack://xgplayer/./src/skin/style/controls/definition.scss","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss?b22e","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss","webpack://xgplayer/./src/skin/style/controls/download.scss?fd33","webpack://xgplayer/./src/skin/style/controls/download.scss","webpack://xgplayer/./src/skin/style/controls/danmu.scss?63bd","webpack://xgplayer/./src/skin/style/controls/danmu.scss","webpack://xgplayer/./src/skin/style/controls/pip.scss?ca0d","webpack://xgplayer/./src/skin/style/controls/pip.scss","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss?40e7","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss","webpack://xgplayer/./src/skin/style/controls/playNext.scss?357b","webpack://xgplayer/./src/skin/style/controls/playNext.scss","webpack://xgplayer/./src/skin/style/controls/rotate.scss?2612","webpack://xgplayer/./src/skin/style/controls/rotate.scss","webpack://xgplayer/./src/skin/style/controls/reload.scss?8b1a","webpack://xgplayer/./src/skin/style/controls/reload.scss","webpack://xgplayer/./src/skin/style/controls/screenShot.scss?3979","webpack://xgplayer/./src/skin/style/controls/screenShot.scss","webpack://xgplayer/./src/skin/style/controls/textTrack.scss","webpack://xgplayer/./src/skin/style/controls/error.scss?28c3","webpack://xgplayer/./src/skin/style/controls/error.scss","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss?bf77","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss","webpack://xgplayer/./src/skin/style/controls/airplay.scss?6996","webpack://xgplayer/./src/skin/style/controls/airplay.scss","webpack://xgplayer/./src/controls/airplay.js","webpack://xgplayer/./src/controls/cssFullscreen.js","webpack://xgplayer/./src/controls/danmu.js","webpack://xgplayer/./src/controls/definition.js","webpack://xgplayer/./src/controls/download.js","webpack://xgplayer/./src/utils/url.js","webpack://xgplayer/./src/controls/errorRetry.js","webpack://xgplayer/./src/controls/keyboard.js","webpack://xgplayer/./src/controls/localPreview.js","webpack://xgplayer/./src/controls/memoryPlay.js","webpack://xgplayer/./src/controls/miniplayer.js","webpack://xgplayer/./src/controls/pip.js","webpack://xgplayer/./src/controls/playNext.js","webpack://xgplayer/./src/controls/reload.js","webpack://xgplayer/./src/controls/rotate.js","webpack://xgplayer/./src/controls/screenShot.js","webpack://xgplayer/./src/controls/stallCheck.js","webpack://xgplayer/./src/controls/volume.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/_virtual/_rollupPluginBabelHelpers.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/parser.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/error.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/xhr.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/proxyPromise.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/utils.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/observer.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/constants.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/es/index.js","webpack://xgplayer/./src/controls/textTrack.js","webpack://xgplayer/./src/skin/controls/enter.js","webpack://xgplayer/./src/skin/controls/cssFullscreen.js","webpack://xgplayer/./src/skin/controls/volume.js","webpack://xgplayer/./src/skin/controls/definition.js","webpack://xgplayer/./src/skin/controls/playbackRate.js","webpack://xgplayer/./src/skin/controls/localPreview.js","webpack://xgplayer/./src/skin/controls/download.js","webpack://xgplayer/./src/skin/controls/danmu.js","webpack://xgplayer/./src/skin/controls/pip.js","webpack://xgplayer/./src/skin/controls/miniplayer.js","webpack://xgplayer/./src/skin/controls/playNext.js","webpack://xgplayer/./src/skin/controls/rotate.js","webpack://xgplayer/./src/skin/controls/reload.js","webpack://xgplayer/./src/skin/controls/screenShot.js","webpack://xgplayer/./src/skin/controls/nativeTextTrack.js","webpack://xgplayer/./src/skin/controls/textTrack.js","webpack://xgplayer/./src/skin/controls/error.js","webpack://xgplayer/./src/skin/controls/memoryPlay.js","webpack://xgplayer/./src/skin/controls/airplay.js","webpack://xgplayer/./src/skin/index.js","webpack://xgplayer/./src/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","createDom","el","tpl","attrs","cname","dom","document","createElement","className","innerHTML","keys","forEach","item","setAttribute","hasClass","classList","Array","some","match","RegExp","addClass","replace","split","add","removeClass","remove","reg","toggleClass","findDom","sel","querySelector","e","indexOf","getElementById","slice","padStart","str","length","pad","charstr","String","len","maxlen","Math","ceil","chars","push","join","substring","format","time","isNaN","hour","floor","minute","second","event","touches","touch","changedTouches","clientX","clientY","offsetX","pageX","target","offsetLeft","offsetY","pageY","offsetTop","_target","srcElement","typeOf","obj","toString","deepCopy","dst","src","Node","concat","copyDom","nodeType","back","tagName","attributes","node","_setInterval","context","eventName","intervalFunc","frequency","_interval","setInterval","_clearInterval","clearInterval","createImgBtn","imgUrl","width","height","btn","style","backgroundImage","w","h","unit","every","Number","trim","backgroundSize","margin","isWeiXin","navigator","userAgent","toLowerCase","isUc","offInDestroy","fn","offEvent","once","onDestroy","off","on","_fn","data","getBuffered2","vbuffered","maxHoleDuration","buffered","start","end","sort","a","b","diff","buffered_2","buf2len","buf2end","XgplayerTimeRange","checkIsBrowser","setStyle","elem","error","setProperty","PresentationMode","PIP","INLINE","FULLSCREEN","checkWebkitSetPresentationMode","video","webkitSetPresentationMode","util","getBgImage","url","currentStyle","getComputedStyle","href","computeWatchDur","played","arr","begin","j","splice","min","max","watch_dur","useSourceMap","list","this","map","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","id","memo","stylesInDom","isOldIE","all","atob","apply","arguments","getTarget","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","createStyleElement","type","addAttrs","update","result","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","autoFixUrls","undefined","convertToAbsoluteUrls","blob","oldSrc","sniffer","os","isPc","ua","ie","firfox","chrome","opera","safari","test","isWindowsPhone","isSymbian","isAndroid","isFireFox","isTablet","isPhone","ErrorTypes","network","code","msg","remark","mse","parse","decoder","runtime","timeout","other","Errors","constructor","currentTime","duration","networkState","readyState","currentSrc","ended","errd","line","handle","version","errorCode","mediaError","playerVersion","errorType","domain","ex","arg","Proxy","_hasStart","videoConfig","controls","isShowControl","autoplay","playsinline","airplay","tabindex","mediaType","muted","loop","textTrackDom","textTrackShowDefault","nativeTextTrack","isArray","track","default","label","kind","srclang","crossorigin","textTrackStyle","styleStr","wrap","sheet","insertRule","addRule","XgVideoProxy","videoStyle","getElementsByTagName","autoplayMuted","ev","charAt","toUpperCase","EventEmitter","lastBuffer","self","defaultVideoEventHandler","hasStart","inWaitingStart","Date","getTime","_onError","emit","curBuffer","videoEventHandler","videoEventMiddleware","evItem","addEventListener","bool","destroy","play","pause","canPlayType","getBufferedRange","range","proxyOn","proxyOnce","isTrue","crossOrigin","isFinite","replay","defaultMuted","config","err","status","en","cn","lang","playbackRate","rate","preload","seekable","seeking","posterUrl","poster","volume","vol","Player","super","ignores","whitelist","documentElement","getAttribute","language","toLocaleLowerCase","inactive","controlsList","userTimer","waitTimer","history","isProgressMoving","unselectable","onselectstart","display","vid","console","device","fluid","execBeforePluginsCall","closeI18n","install","s_i18n","method","controlStyle","fetch","headers","Accept","then","res","ok","json","prop","pluginsCall","catch","log","controlPlugins","controlsRun","evName","evFunc","player","mousemoveFunc","closeFocusVideoFocus","focus","playFunc","closePlayVideoFocus","getVideoSize","videoWidth","videoHeight","containerSize","getBoundingClientRect","fitVideoSize","setTimeout","isReady","videoInit","rotate","updateRotateDeg","removeEventListener","attachVideo","danmu","resize","canPlayFunc","playPromise","disableStartLoad","load","reload","reloadFunc","isDelDom","bulletResizeTimer","k","checkTimer","clearTimeout","loadeddataFunc","replayFunc","keyShortcut","onKeydown","removeAttribute","classNameList","allOff","_replay","browser","Function","userGestureTrigEvent","param","defaultUserGestureEventHandler","userGestureEventMiddleware","plugins","descriptor","warn","onFocus","onBlur","enablePausedInactive","paused","closeInactive","onPlay","onPause","onEnded","onSeeking","isSeeking","onWaiting","onSeeked","onPlaying","use","controlLst","control","_undefined","require","val","bufferedList","HAVE_NOTHING","HAVE_METADATA","HAVE_CURRENT_DATA","HAVE_FUTURE_DATA","HAVE_ENOUGH_DATA","NETWORK_EMPTY","NETWORK_IDLE","NETWORK_LOADING","NETWORK_NO_SOURCE","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","REPLAY","ERROR","PLAY_TIPS","PAUSE_TIPS","PLAYNEXT_TIPS","DOWNLOAD_TIPS","ROTATE_TIPS","RELOAD_TIPS","FULLSCREEN_TIPS","EXITFULLSCREEN_TIPS","CSSFULLSCREEN_TIPS","EXITCSSFULLSCREEN_TIPS","TEXTTRACK","MINIPLAYER","SCREENSHOT","LIVE","OFF","MINIPLAYER_DRAG","AIRPLAY_TIPS","set","methods","descriptors","callable","defineProperties","configurable","writable","listener","__eeOnceListener__","__ee__","listeners","candidate","args","emitter","_click_","clk","clickedTime","first","onReady","onElementTouchend","isTouchMove","element","closeVideoPreventDefault","preventDefault","closeVideoStopPropagation","stopPropagation","closeVideoTouch","onTouch","closeVideoClick","enableVideoDbltouch","abs","onMouseEnter","leavePlayerTimer","onMouseLeave","closePlayerBlur","leavePlayerTime","onElementClick","onElementDblclick","closeVideoDblclick","fullscreen","createEvent","initEvent","Event","dispatchEvent","closeControlsBlur","onCanPlay","onStartBtnClick","contains","mediaSource","onPlayerReady","enableContextmenu","hideStartBtn","onclick","isValue","isPlainFunction","assign","normalizeOpts","dscr","desc","gs","isFunction","classRe","functionToString","isPrototype","isObject","possibleTypes","foo","bar","trzy","dest","TypeError","process","opts1","searchString","function","locals","location","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","onFullscreenBtnClick","rotateFullscreen","exitRotateFullscreen","getRotateFullscreen","exitFullscreen","getFullscreen","onFullscreenChange","fullscreenEl","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","onWebkitpresentationmodechanged","webkitPresentationMode","requestFullscreen","fullscreenPromise","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","webkitSupportsFullscreen","webkitEnterFullscreen","msRequestFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","onPlayBtnClick","allowPlayAfterEnded","onReplayBtnClick","playceholder","isRotateFullscreen","containerWidth","container","progress","outer","cache","point","thumbnail","dotEvent","dotItem","text","dotArr","onCanplay","progressDot","dot","left","addProgressDot","removeProgressDot","removeAllProgressDot","coverPreviewContainer","coverPreviewPoint","coverPreviewOuter","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","interval","tnailUrls","onLoadedmetadata","isShowCoverPreview","pic_num","col","row","urls","disableSwipeHandler","enableSwipeHandler","disableSwipe","events","pop","disableProgress","allowSeekAfterEnded","isRotate","top","move","now","allowSeekPlayed","toFixed","maxPlayedTime","dash","closeMoveSeek","indexInPage","tnaiRowIndex","tnaiColIndex","up","passive","blur","containerLeft","compute","textContent","pointWidth","leave","onTimeupdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","onCacheUpdate","cacheUpdateEvents","destroyFunc","onTimeChange","playBtn","tipsText","tips","fullscreenBtn","request","requestfull","exitfull","replayText","path","getPropertyValue","svg","download","strFileName","strMimeType","reader","defaultMime","mimeType","payload","anchor","myBlob","MozBlob","WebKitBlob","fileName","ajax","XMLHttpRequest","open","responseType","onload","response","send","msSaveBlob","dataUrlToBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","binData","decodeURIComponent","uiArr","winMode","body","click","confirm","f","y","FileReader","readAsDataURL","getSize","Unidragger","extend","jQuery","Draggabilly","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","applyGrid","grid","position","_getPosition","startPoint","x","dragPoint","startPosition","onPointerMove","onPointerUp","enable","setHandles","handles","querySelectorAll","bindHandles","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","trigger","_getPositionCoord","_addTransformPosition","styleSide","measure","parentSize","parseFloat","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","pointerDown","okayPointerDown","isEnabled","pointerDownPointer","pointerDownBlur","_bindPostStartEvents","_pointerReset","dragStart","measureContainment","setLeftTop","animate","getContainer","elemSize","elemRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","HTMLElement","moveVector","dragMove","dragX","dragY","gridX","gridY","containDrag","axis","drag","dragEnd","isDragging","positionDrag","_this","requestAnimationFrame","staticClick","setPosition","disable","unbindHandles","removeData","_init","bridget","has","prefix","Events","EE","addListener","evt","_events","_eventsCount","clearEvent","__proto__","eventNames","names","getOwnPropertySymbols","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","removeAllListeners","prefixed","startsWith","attachEventListener","styleUtil","styleCSSText","isNumber","throttle","logger","DanmuJs","u","ReferenceError","getPrototypeOf","setLogger","info","overlap","area","lines","live","comments","direction","needResizeObserver","dropStaleComments","channelSize","maxCommentsLength","bulletOffset","highScorePriority","hideArr","domObj","freezeId","containerStyle","bulletBtn","main","addResizeObserver","setPrototypeOf","addObserver","stop","clear","unObserver","txt","opacity","fontSize","prior","realTime","unshift","readData","dataHandle","keepPoolWatermark","queue","pauseMove","startMove","like","setLikeDom","_releaseCtrl","mouseControl","_freezeCtrl","dataElHandle","sortData","forceDuration","playRate","reflow","setFontSize","channel_id","topInit","channel","resizeSync","color","bullets","displayArea","getRealOccupyArea","containerPos","g","v","constructorName","defaultOff","switchBtn","playedData","timer","retryStatus","_status","updateQueue","handleId","handleTimer","_cancelDataHandleTimer","bullet","attached_","reset","init","channels","resized","score","updatePos","bulletCreateFail","attach","addBullet","detach","noDiscard","onElDestroy","Bullet","bookChannelId","reuseDOM","disableCopyDOM","eventListeners","useCapture","onChangeDirection","random","updateOffset","elPos","moveV","mouseoverFunWrapper","mouseoverFun","mouseEnterControl","mouseEnterFunWrapper","_onTransitionEnd","unused","mouseControlPause","_moveV","moveTime","moveMoreS","moveContainerHeight","moveContainerWidth","pastDuration","startTime","hasMove","bottom","right","outerHTML","removeBullet","_cancelResizeTimer","resetId","cancelAnimationFrame","_initChannels","channelCount","channelWidth","channelHeight","containerHeight","containerTop","containerBottom","containerRight","message","operating","scroll","bookId","_","O","bOffset","E","C","M","T","L","P","S","z","D","I","R","q","A","U","validAreaLineRule","resizing","resizeId","isInteger","initDOM","initSize","idleList","usingList","_id","_expand","shift","textcontent","clearElementStyle","destroyObserver","__handlers","ResizeObserver","observer","__trigger","observe","handler","unobserve","disconnect","__runHandler","hmr","getStyleSize","num","logError","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","div","padding","borderStyle","borderWidth","boxSizing","round","setup","size","innerWidth","innerHeight","outerWidth","outerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","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","isOkay","focused","activeElement","pointerMove","_dragPointerMove","_dragMove","hasDragStarted","_dragStart","pointerUp","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","EvEmitter","bindStartEvent","unbindStartEvent","startEvent","handleEvent","getTouch","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","onpointerdown","isPointerDown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","onceEvents","_onceEvents","onceListeners","onAirplayBtnClick","webkitShowPlaybackTargetPicker","WebKitPlaybackTargetAvailabilityEvent","onCssFullscreenBtnClick","exitCssFullscreen","getCssFullscreen","danmujs","closeDefaultBtn","danmuBtn","createSwitch","onDownloadBtnClick","getAbsoluteURL","downloadUtil","defaultConfig","maxCount","backupUrl","isFetch","fetchTimeout","errorConfig","_inConfig","retryCanPlay","retryData","retryCode","isFetchReturn","count","errfTimer","_originErrorEmit","errorCount","resolveFun","resolve","Promise","reject","xhr","statusText","onerror","onabort","errorfetch","httpCode","httpMsg","Keyboard","state","isRepeat","keyCode","repeat","isBody","initEvents","onBodyKeydown","onKeyup","checkTarget","cancelBubble","returnValue","handlerKeyCode","changeVolumeSlide","disableLongPress","isLonePress","changeRate","seek","changeVolume","isBack","isLongPress","currentTimeStep","keyShortcutStep","isLoading","keyboardRate","show","isup","volumeStep","keyboard","onUpload","upload","uploadFile","files","lastPlayTime","onMiniplayerBtnClick","exitMiniplayer","getMiniplayer","dragLay","dragHandle","miniplayerConfig","onPipBtnClick","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","pMode","pictureInPictureWindow","pipWindow","nextBtn","playNext","onPlayNextBtnClick","currentVideoIndex","urlList","onReloadBtnClick","rotateConfig","onRotateBtnClick","clockwise","innerRotate","rotateDeg","scale","targetWidth","targetHeight","controlsFix","transformOrigin","webKitTransform","times","factor","screenShotOptions","screenShot","callBack","encoderOptions","quality","canvas","canvasCtx","getContext","img","Image","save","saveImg","drawImage","toDataURL","screenShotImg","saveFileName","filename","saveLink","initMouseEvent","saveScreenShot","enableStallCheck","stallFlag","stallCheckTimer","progressTimer","lastCurrentTime","slider","selected","onVolumeChange","onVolumeBarClick","barRect","pos","isMove","onMove","onUp","onVolumeIconClick","onVolumeIconEnter","onVolumeIconLeave","_changeTimer","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","_typeof","iterator","obj2","_classCallCheck","instance","Constructor","_defineProperties","props","_toPropertyKey","_createClass","protoProps","staticProps","_getPrototypeOf","o2","_setPrototypeOf","p2","_assertThisInitialized","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","valueOf","_isNativeReflectConstruct","Super","NewTarget","_superPropBase","_get","receiver","input","hint","prim","toPrimitive","_toPrimitive","VTT_CHECK","VTT_STYLE","VTT_CUE","VTT_CUEND","ASS_CHECK","TIME_REGEX_LIST","ASS_FORMAT","ASS_STYLE","ASS_DIALOGUE","getSecond","getByIndex","SubTitleParser","SubTitleParser2","ret","fun","checkFormat","parseASS","parseVTT","values","textTag","retData","groupCount","lastSubTitle","subTitle","parseASSItem","_lastSubTitle","group","keyArr","isLastSpace","isCueStart","styleInfo","styleHeader","_str","cueMatch","exec","checkIsTime","parseVttTime","_lastSubTitle2","parseVttText","tag","langMatch","retText","textMatch","tagsReg","re","aArr","bArr","_ERROR","XHR","XHR2","_ref","_ref$method","_ref$type","_ref$timeout","_ref$data","_method","_data","ontimeout","setRequestHeader","ProxyPromise","ProxyPromise2","resolvePromise","rejectPromise","publicPromise","isBreak","reason","orgClassName","findIndexByTime","findCIndexByTime","ids","promise","parseJson","_err3","loadSubTitle","data2","_err","checkSubtitle","dist","ResizeObserver2","entries","cr","_this2","contentRect","resizeObserver","EVENTS","formatUrl","IS_MOBILE","Subtitle","_EventEmitter","subClass","superClass","_inherits","Subtitle2","_super","_isOpen","_this$player$video","_videoMeta","_onResize","curTime","_getPlayerCurrentTime","_ctime","currentText","updateMode","_liveUpdate","_update","_assertThisInitialize","domRender","_iId","_this$player$video2","__startResize","_onSubtitleSegment","_onSubtitlePlaylist","_onCoreSeiintime","e2","detachPlayer","textTrack","currentExtText","_cid","_gid","_cids","_iC","defaultOpen","baseSizeX","baseSizeY","minSize","minMobileSize","fitVideo","offsetBottom","fontColor","debugger","_loadingTrack","lwidth","lheight","vWidth","vHeight","vBottom","vLeft","subTitles","attachPlayer","seiTime","lastSeiTime","_curTexts","setSubTitles","isOpen","ieRemoveFirst","innerRoot","switchOff","isDefault","_log","switch","_loadTrack","addStyles","_this3","_isCurrent","_loadTrackUrls","preTag","styleTag","func","disabled","textNode","addCSS","_this4","_this$config","_onTimeupdate","_onCoreEvents","_this5","subtitle","_updateCurrent","switchOn","nextSubtitle","__removeByTime","_emitPlayerSwitch","_err2","err2","_this6","hide","_console","_len2","_key","_this7","contentType","stringContent","_pushList","curSubtitle","nextSubTitle","_this8","loadingCount","finally","_start","_end","_index","i2","_this9","__remove","_this10","oldArr","newArr","includes","_this11","gid","cids","gList","getItemsByIndex","_len","_si","__render","_this12","delCids","getDelCid","newCids","getNewCid","texts","textExt","subtitleList","mUrl","sn","_sub","updateSubTitle","sei","_this13","_this$config2","_size","mini","_this14","rect","_this15","children","removeIndex","_this16","jsonItems","jsonItem","attr","_get2","_len3","_key2","callback","_get3","_len4","_key3","_get4","_len5","_key4","_get5","_len6","_key5","_this$_videoMeta","defaultStyle","follow","followBottom","XgSubtitles","positionData","isActive","onSubtitleResize","SubTitles","subtitles","showDefault","isNeedMove","needRemove","isListUpdate","switchSubTitle","switchOffSubtile","barStr","enter","cssFullscreen","icon","onCanplayResourceReady","definitionList","tmp","switchURL","_options","_mediaDataSource","originUrl","cursrc","urlInRoot","cur","definitionActive","onResourceReady","onPlayingChangeDefinition","onTimeupdateChangeDefinition","li","from","to","curRUL","getCurrentDefinition","liList","switchDefinition","definitionObj","playbackRateList","playbackRateUnit","playbackRateActive","selectedSpeed","defaultPlaybackRate","playbackDom","switchPlaybackRate","playbackRateObj","preview","uploadEl","onchange","panelBtn","panel","focusStatus","danmuConfig","hidemodeArray","transparency","transparencyGradient","transparencyValue","background","showareaValue","danmuspeedValue","danmufontValue","pip","miniplayer","onUrlListEnd","hideButton","screenShotText","iconText","controlText","textTrackActive","trackDoms","ul","renderList","offText","isDefaultShow","onListUpdate","errorTips","refresh","onError","lastPlayTimeHideDelay","removeFunc","availability","hidden","installAll","I18n","Enter","Play","Start","Poster","Flex","Fullscreen","CssFullscreen","Volume","Definition","Loading","Progress","Time","Replay","PlaybackRate","LocalPreview","Download","Danmu","Pip","Miniplayer","PlayNext","Rotate","Reload","ScreenShot","NativeTextTrack","TextTrack","ErrorControl","MemoryPlay","Airplay","ErrorRetryControl","Mobile","Pc","StallCheck"],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"xgplayer\"] = factory();\n\telse\n\t\troot[\"xgplayer\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 74);\n","import XgplayerTimeRange from './xgplayerTimeRange'\n\nexport function createDom(el = 'div', tpl = '', attrs = {}, cname = '') {\n let dom = document.createElement(el)\n dom.className = cname\n dom.innerHTML = tpl\n Object.keys(attrs).forEach(item => {\n let key = item\n let value = attrs[item]\n if (el === 'video' || el === 'audio') {\n if (value) {\n dom.setAttribute(key, value)\n }\n } else {\n dom.setAttribute(key, value)\n }\n })\n return dom\n}\n\nexport function hasClass(el, className) {\n if (!el) {\n return false;\n }\n\n if (el.classList) {\n return Array.prototype.some.call(el.classList, item => item === className)\n } else if (el.className) {\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'))\n } else {\n return false;\n }\n}\n\nexport function addClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n className.replace(/(^\\s+|\\s+$)/g, '').split(/\\s+/g).forEach(item => {\n item && el.classList.add(item)\n })\n } else if (!hasClass(el, className)) {\n el.className += ' ' + className\n }\n}\n\nexport function removeClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n className.split(/\\s+/g).forEach(item => {\n el.classList.remove(item)\n })\n } else if (hasClass(el, className)) {\n className.split(/\\s+/g).forEach(item => {\n let reg = new RegExp('(\\\\s|^)' + item + '(\\\\s|$)')\n el.className = el.className.replace(reg, ' ')\n })\n }\n}\n\nexport function toggleClass(el, className) {\n if (!el) {\n return;\n }\n\n className.split(/\\s+/g).forEach(item => {\n if (hasClass(el, item)) {\n removeClass(el, item)\n } else {\n addClass(el, item)\n }\n })\n}\n\nexport function findDom(el = document, sel) {\n let dom\n // fix querySelector IDs that start with a digit\n // https://stackoverflow.com/questions/37270787/uncaught-syntaxerror-failed-to-execute-queryselector-on-document\n try {\n dom = el.querySelector(sel)\n } catch (e) {\n if (sel.indexOf('#') === 0) {\n dom = el.getElementById(sel.slice(1))\n }\n }\n return dom\n}\n\nexport function padStart(str, length, pad) {\n let charstr = String(pad)\n let len = length >> 0\n let maxlen = Math.ceil(len / charstr.length)\n let chars = []\n let r = String(str)\n while (maxlen--) {\n chars.push(charstr)\n }\n return chars.join('').substring(0, len - r.length) + r\n}\n\nexport function format(time) {\n if (window.isNaN(time)) {\n return ''\n }\n let hour = padStart(Math.floor(time / 3600), 2, 0)\n let minute = padStart(Math.floor((time - hour * 3600) / 60), 2, 0)\n let second = padStart(Math.floor((time - hour * 3600 - minute * 60)), 2, 0)\n return (hour === '00' ? [minute, second] : [hour, minute, second]).join(':')\n}\n\nexport function event(e) {\n if (e.touches) {\n let touch = e.touches[0] || e.changedTouches[0]\n e.clientX = touch.clientX || 0\n e.clientY = touch.clientY || 0\n e.offsetX = touch.pageX - touch.target.offsetLeft\n e.offsetY = touch.pageY - touch.target.offsetTop\n }\n e._target = e.target || e.srcElement\n}\n\nexport function typeOf(obj) {\n return Object.prototype.toString.call(obj).match(/([^\\s.*]+)(?=]$)/g)[0]\n}\n\nexport function deepCopy(dst, src) {\n if (typeOf(src) === 'Object' && typeOf(dst) === 'Object') {\n Object.keys(src).forEach(key => {\n if (typeOf(src[key]) === 'Object' && !(src[key] instanceof Node)) {\n if (!dst[key]) {\n dst[key] = src[key]\n } else {\n deepCopy(dst[key], src[key])\n }\n } else if (typeOf(src[key]) === 'Array') {\n dst[key] = typeOf(dst[key]) === 'Array' ? dst[key].concat(src[key]) : src[key]\n } else {\n dst[key] = src[key]\n }\n })\n return dst\n }\n}\nexport function getBgImage(el) {\n // fix: return current page url when url is none\n let url = (el.currentStyle || window.getComputedStyle(el, null)).backgroundImage\n if (!url || url === 'none') {\n return ''\n }\n let a = document.createElement('a')\n a.href = url.replace(/url\\(\"|\"\\)/g, '')\n return a.href\n}\n\nexport function copyDom(dom) {\n if (dom && dom.nodeType === 1) {\n let back = document.createElement(dom.tagName)\n Array.prototype.forEach.call(dom.attributes, (node) => {\n back.setAttribute(node.name, node.value)\n })\n if (dom.innerHTML) {\n back.innerHTML = dom.innerHTML\n }\n return back\n } else {\n return ''\n }\n}\n\nexport function _setInterval(context, eventName, intervalFunc, frequency) {\n if (!context._interval[eventName]) {\n context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency)\n }\n}\n\nexport function _clearInterval(context, eventName) {\n clearInterval(context._interval[eventName])\n context._interval[eventName] = null\n}\n\nexport function createImgBtn(name, imgUrl, width, height) {\n let btn = createDom(`xg-${name}`, '', {}, `xgplayer-${name}-img`)\n btn.style.backgroundImage = `url(\"${imgUrl}\")`\n if (width && height) {\n let w, h, unit\n ['px', 'rem', 'em', 'pt', 'dp', 'vw', 'vh', 'vm', '%'].every((item) => {\n if (width.indexOf(item) > -1 && height.indexOf(item) > -1) {\n w = Number(width.slice(0, width.indexOf(item)).trim())\n h = Number(height.slice(0, height.indexOf(item)).trim())\n unit = item\n return false\n } else {\n return true\n }\n })\n btn.style.width = `${w}${unit}`\n btn.style.height = `${h}${unit}`\n btn.style.backgroundSize = `${w}${unit} ${h}${unit}`\n if (name === 'start') {\n btn.style.margin = `-${h / 2}${unit} auto auto -${w / 2}${unit}`\n } else {\n btn.style.margin = 'auto 5px auto 5px'\n }\n }\n return btn\n}\n\nexport function isWeiXin() {\n let ua = window.navigator.userAgent.toLowerCase()\n return ua.indexOf('micromessenger') > -1\n}\n\nexport function isUc() {\n let ua = window.navigator.userAgent.toLowerCase()\n return ua.indexOf('ucbrowser') > -1\n}\n\nexport function computeWatchDur(played = []) {\n let arr = []\n for (let i = 0; i < played.length; i++) {\n if(!played[i].end || played[i].begin < 0 || played[i].end < 0 || played[i].end < played[i].begin) {\n continue\n }\n if(arr.length < 1) {\n arr.push({begin: played[i].begin, end: played[i].end})\n } else {\n for (let j = 0; j < arr.length; j++) {\n let begin = played[i].begin\n let end = played[i].end\n if(end < arr[j].begin) {\n arr.splice(j, 0, {begin, end})\n break\n } else if(begin > arr[j].end) {\n if(j > arr.length - 2) {\n arr.push({begin, end})\n break\n }\n } else {\n let b = arr[j].begin\n let e = arr[j].end\n arr[j].begin = Math.min(begin, b)\n arr[j].end = Math.max(end, e)\n break\n }\n }\n }\n }\n let watch_dur = 0\n for (let i = 0; i < arr.length; i++) {\n watch_dur += arr[i].end - arr[i].begin\n }\n return watch_dur\n}\n\nexport function offInDestroy(object, event, fn, offEvent) {\n function onDestroy () {\n object.off(event, fn)\n object.off(offEvent, onDestroy)\n }\n object.once(offEvent, onDestroy)\n}\n\nexport function on(object, event, fn, offEvent) {\n if (offEvent) {\n object.on(event, fn)\n offInDestroy(object, event, fn, offEvent)\n } else {\n let _fn = data => {\n fn(data)\n object.off(event, _fn)\n }\n object.on(event, _fn)\n }\n}\n\nexport function once(object, event, fn, offEvent) {\n if (offEvent) {\n object.once(event, fn)\n offInDestroy(object, event, fn, offEvent)\n } else {\n let _fn = data => {\n fn(data)\n object.off(event, _fn)\n }\n object.once(event, _fn)\n }\n}\n\nexport function getBuffered2(vbuffered, maxHoleDuration = 0.5) { //ref: hls.js\n let buffered = []\n for (let i = 0; i < vbuffered.length; i++) {\n buffered.push({ start: vbuffered.start(i) < 0.5 ? 0 : vbuffered.start(i), end: vbuffered.end(i) });\n }\n buffered.sort(function (a, b) {\n let diff = a.start - b.start;\n if (diff) {\n return diff;\n } else {\n return b.end - a.end;\n }\n });\n let buffered_2 = []\n if (maxHoleDuration) {\n for (let i = 0; i < buffered.length; i++) {\n let buf2len = buffered_2.length\n if (buf2len) {\n let buf2end = buffered_2[buf2len - 1].end\n if ((buffered[i].start - buf2end) < maxHoleDuration) {\n if (buffered[i].end > buf2end) {\n buffered_2[buf2len - 1].end = buffered[i].end\n }\n } else {\n buffered_2.push(buffered[i])\n }\n } else {\n buffered_2.push(buffered[i])\n }\n }\n } else {\n buffered_2 = buffered\n }\n return new XgplayerTimeRange(buffered_2)\n}\n\nexport function checkIsBrowser() {\n return !(typeof(window) === 'undefined' || typeof(window.document) === 'undefined' || typeof(window.document.createElement) === 'undefined')\n}\n\nexport function setStyle(elem, name, value) {\n let style = elem.style;\n try {\n style[name] = value;\n } catch (error) {\n style.setProperty( name, value );\n }\n}\n\nexport const PresentationMode = {\n PIP: 'picture-in-picture',\n INLINE: 'inline',\n FULLSCREEN: 'fullscreen'\n}\n\nexport function checkWebkitSetPresentationMode (video) {\n return typeof video.webkitSetPresentationMode === 'function'\n}\n\nexport const util = {\n createDom, hasClass, addClass, removeClass, toggleClass, findDom, padStart, format, event, typeOf, \n deepCopy, getBgImage, copyDom, setInterval: _setInterval, clearInterval: _clearInterval, createImgBtn, isWeiXin, isUc, computeWatchDur,\n offInDestroy, on, once, getBuffered2, checkIsBrowser, setStyle\n}\n\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","let sniffer = {}\n\nObject.defineProperty(sniffer, 'device', {\n get: function () {\n let r = sniffer.os\n return r.isPc ? 'pc' : 'mobile'\n // return r.isPc ? 'pc' : r.isTablet ? 'tablet' : 'mobile'\n }\n})\n\nObject.defineProperty(sniffer, 'browser', {\n get: function () {\n let ua = navigator.userAgent.toLowerCase()\n let reg = {\n ie: /rv:([\\d.]+)\\) like gecko/,\n firfox: /firefox\\/([\\d.]+)/,\n chrome: /chrome\\/([\\d.]+)/,\n opera: /opera.([\\d.]+)/,\n safari: /version\\/([\\d.]+).*safari/\n }\n return [].concat(Object.keys(reg).filter(key => reg[key].test(ua)))[0] || ''\n }\n})\n\nObject.defineProperty(sniffer, 'os', {\n get: function () {\n let ua = navigator.userAgent\n let isWindowsPhone = /(?:Windows Phone)/.test(ua)\n let isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone\n let isAndroid = /(?:Android)/.test(ua)\n let isFireFox = /(?:Firefox)/.test(ua)\n let isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua))\n let isPhone = /(?:iPhone)/.test(ua) && !isTablet\n let isPc = !isPhone && !isAndroid && !isSymbian && !isTablet\n return {\n isTablet,\n isPhone,\n isAndroid,\n isPc,\n isSymbian,\n isWindowsPhone,\n isFireFox\n }\n }\n})\n\nexport default sniffer\n","import {version} from '../version.json'\nconst ErrorTypes = {\n network: {\n code: 1,\n msg: '视频下载错误',\n remark: '只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在'\n },\n mse: {\n code: 2,\n msg: '流追加错误',\n remark: '追加流的时候如果类型不对、无法被正确解码则会触发此类错误'\n },\n parse: {\n code: 3,\n msg: '解析错误',\n remark: 'mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误'\n },\n format: {\n code: 4,\n msg: '格式错误',\n remark: '如果浏览器不支持的格式导致播放错误'\n },\n decoder: {\n code: 5,\n msg: '解码错误',\n remark: '浏览器解码异常会抛出此类型错误'\n },\n runtime: {\n code: 6,\n msg: '语法错误',\n remark: '播放器语法错误'\n },\n timeout: {\n code: 7,\n msg: '播放超时',\n remark: '播放过程中无法正常请求下一个分段导致播放中断'\n },\n other: {\n code: 8,\n msg: '其他错误',\n remark: '不可知的错误或被忽略的错误类型'\n }\n}\n\nclass Errors {\n constructor (type, currentTime, duration, networkState, readyState, src, currentSrc,\n ended, errd = {line: '', handle: '', msg: '', version: ''}, errorCode, mediaError) {\n let r = {}\n if (arguments.length > 1) {\n r.playerVersion = version // 播放器版本\n r.errorType = type\n r.domain = document.domain // domain\n r.duration = duration // 视频时长\n r.currentTime = currentTime\n r.networkState = networkState\n r.readyState = readyState\n r.currentSrc = currentSrc\n r.src = src\n r.ended = ended\n r.errd = errd // 错误详情\n r.ex = (ErrorTypes[type] || {}).msg // 补充信息\n r.errorCode = errorCode\n r.mediaError = mediaError\n } else {\n const arg = arguments[0]\n Object.keys(arg).map(key => {\n r[key] = arg[key]\n })\n r.ex = ((arg.type && ErrorTypes[arg.type]) || {}).msg\n }\n return r\n }\n}\nexport default Errors\n","import EventEmitter from 'event-emitter'\nimport { findDom, createDom, hasClass, removeClass, _clearInterval, _setInterval, on, once, getBuffered2, setStyle } from './utils/util'\nimport Errors from './error'\n\nclass Proxy {\n constructor (options) {\n this._hasStart = false\n this.videoConfig = {\n controls: !!options.isShowControl,\n autoplay: options.autoplay,\n playsinline: options.playsinline,\n 'webkit-playsinline': options.playsinline,\n 'x5-playsinline': options.playsinline,\n 'x5-video-player-type': options['x5-video-player-type'] || options['x5VideoPlayerType'],\n 'x5-video-player-fullscreen': options['x5-video-player-fullscreen'] || options['x5VideoPlayerFullscreen'],\n 'x5-video-orientation': options['x5-video-orientation'] || options['x5VideoOrientation'],\n airplay: options['airplay'],\n 'webkit-airplay': options['airplay'],\n tabindex: 2,\n mediaType: options.mediaType || 'video'\n }\n if (options.muted) {\n this.videoConfig.muted = 'muted'\n }\n if (options.loop) {\n this.videoConfig.loop = 'loop'\n }\n let textTrackDom = ''\n this.textTrackShowDefault = true\n if (options.nativeTextTrack && Array.isArray(options.nativeTextTrack)) {\n if (options.nativeTextTrack.length > 0 && !options.nativeTextTrack.some(track => { return track.default })) {\n options.nativeTextTrack[0].default = true\n this.textTrackShowDefault = false\n }\n options.nativeTextTrack.some(track => {\n if (track.src && track.label && track.default) {\n textTrackDom += `<track src=\"${track.src}\" `\n if (track.kind) {\n textTrackDom += `kind=\"${track.kind}\" `\n }\n textTrackDom += `label=\"${track.label}\" `\n if (track.srclang) {\n textTrackDom += `srclang=\"${track.srclang}\" `\n }\n textTrackDom += `${track.default ? 'default' : ''}>`\n return true\n }\n })\n this.videoConfig.crossorigin = 'anonymous'\n }\n if (options.textTrackStyle) {\n let style = document.createElement('style')\n this.textTrackStyle = style\n document.head.appendChild(style)\n let styleStr = ''\n for (let index in options.textTrackStyle) {\n styleStr += `${index}: ${options.textTrackStyle[index]};`\n }\n let wrap = options.id ? `#${options.id}` : (options.el.id ? `#${options.el.id}` : `.${options.el.className}`)\n if (style.sheet.insertRule) {\n style.sheet.insertRule(`${wrap} video::cue { ${styleStr} }`, 0)\n } else if (style.sheet.addRule) {\n style.sheet.addRule(`${wrap} video::cue`, styleStr)\n }\n }\n let el = options.el ? options.el : findDom(document, `#${options.id}`)\n const XgVideoProxy = this.constructor.XgVideoProxy\n if(XgVideoProxy && this.videoConfig.mediaType === XgVideoProxy.mediaType) {\n this.video = new XgVideoProxy(el, options)\n } else {\n this.video = createDom(this.videoConfig.mediaType, textTrackDom, this.videoConfig, '')\n }\n if (options.videoStyle) {\n Object.keys(options.videoStyle).forEach(key => {\n setStyle(this.video, key, options.videoStyle[key])\n })\n }\n if (!this.textTrackShowDefault && textTrackDom) {\n let trackDoms = this.video.getElementsByTagName('Track')\n trackDoms[0].track.mode = 'hidden'\n }\n if (options.autoplay) {\n this.video.autoplay = true\n if (options.autoplayMuted) {\n this.video.muted = true\n }\n }\n\n this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked', 'progress', \n 'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'ratechange', 'loadedmetadata', 'loadeddata', 'loadstart'\n ].map((item) => {\n return {\n [item]: `on${item.charAt(0).toUpperCase()}${item.slice(1)}`\n }\n })\n EventEmitter(this)\n\n this._interval = {}\n let lastBuffer = '0,0'\n let self = this\n\n const defaultVideoEventHandler = name => {\n // fix when video destroy called and video reload\n if (!this) {\n return\n }\n if (name === 'play') {\n this.hasStart = true\n } else if (name === 'canplay') {\n removeClass(this.root, 'xgplayer-is-enter')\n } else if (name === 'waiting') {\n this.inWaitingStart = new Date().getTime()\n } else if (name === 'playing') {\n removeClass(this.root, 'xgplayer-is-enter')\n if (this.inWaitingStart) {\n this.inWaitingStart = undefined\n }\n }\n if (name === 'error') {\n // process the error\n this._onError(name)\n } else {\n this.emit(name, this)\n }\n\n if (this.hasOwnProperty('_interval')) {\n if (['ended', 'error', 'timeupdate'].indexOf(name) < 0) {\n _clearInterval(this, 'bufferedChange')\n _setInterval(this, 'bufferedChange', function () {\n if (this.video && this.video.buffered) {\n let curBuffer = []\n for (let i = 0, len = this.video.buffered.length; i < len; i++) {\n curBuffer.push([this.video.buffered.start(i), this.video.buffered.end(i)])\n }\n if (curBuffer.toString() !== lastBuffer) {\n lastBuffer = curBuffer.toString()\n this.emit('bufferedChange', curBuffer)\n }\n }\n }, 200)\n } else {\n if (name !== 'timeupdate') {\n _clearInterval(this, 'bufferedChange')\n }\n }\n }\n }\n\n const videoEventHandler = name => {\n if(options.videoEventMiddleware && typeof options.videoEventMiddleware[name] === 'function') {\n options.videoEventMiddleware[name].call(this, this, name, defaultVideoEventHandler)\n } else {\n defaultVideoEventHandler.call(this, name);\n }\n }\n\n this.ev.forEach(item => {\n self.evItem = Object.keys(item)[0]\n let name = Object.keys(item)[0]\n self.video.addEventListener(Object.keys(item)[0], videoEventHandler.bind(self, name))\n })\n }\n /**\n * 错误监听处理逻辑抽离\n */\n _onError (name) {\n if (this.video && this.video.error) {\n this.emit(name, new Errors('other', this.currentTime, this.duration, this.networkState, this.readyState, this.currentSrc, this.src,\n this.ended, {\n line: 162,\n msg: this.error,\n handle: 'Constructor'\n }, this.video.error.code, this.video.error))\n }\n }\n\n get hasStart () {\n return this._hasStart\n }\n set hasStart (bool) {\n if (typeof bool === 'boolean' && bool === true && !this._hasStart) {\n this._hasStart = true\n this.emit('hasstart')\n }\n }\n destroy () {\n if (this.textTrackStyle) {\n this.textTrackStyle.parentNode.removeChild(this.textTrackStyle)\n }\n }\n play () {\n return this.video.play()\n }\n pause () {\n this.video.pause()\n }\n canPlayType (type) {\n return this.video.canPlayType(type)\n }\n getBufferedRange (buffered) {\n let range = [0, 0]\n let video = this.video\n if(!buffered) buffered = video.buffered\n let currentTime = video.currentTime\n if (buffered) {\n for (let i = 0, len = buffered.length; i < len; i++) {\n range[0] = buffered.start(i)\n range[1] = buffered.end(i)\n if (range[0] <= currentTime && currentTime <= range[1]) {\n break\n }\n }\n }\n if (range[0] - currentTime <= 0 && currentTime - range[1] <= 0) {\n return range\n } else {\n return [0, 0]\n }\n }\n proxyOn (event, fn) {\n on(this, event, fn, 'destroy')\n }\n proxyOnce (event, fn) {\n once(this, event, fn, 'destroy')\n }\n set autoplay (isTrue) {\n if(this.video) {\n this.video.autoplay = isTrue\n }\n }\n get autoplay () {\n if(this.video) {\n return this.video.autoplay\n } else {\n return false\n }\n }\n get buffered () {\n if(this.video) {\n return this.video.buffered\n } else {\n return undefined\n }\n }\n get buffered2 () {\n return getBuffered2(this.video.buffered)\n }\n get crossOrigin () {\n if(this.video) {\n return this.video.crossOrigin\n } else {\n return false\n }\n }\n set crossOrigin (isTrue) {\n if(this.video) {\n this.video.crossOrigin = isTrue\n }\n }\n get currentSrc () {\n if(this.video) {\n return this.video.currentSrc\n } else {\n return undefined\n }\n }\n get currentTime () {\n if(this.video) {\n return this.video.currentTime || 0\n } else {\n return 0\n }\n }\n set currentTime (time) {\n if (typeof isFinite === 'function' && !isFinite(time)) return\n if (hasClass(this.root, 'xgplayer-ended')) {\n this.once('playing', () => { this.video.currentTime = time })\n this.replay()\n } else {\n this.video.currentTime = time\n }\n this.emit('currentTimeChange', time)\n }\n get defaultMuted () {\n if(this.video) {\n return this.video.defaultMuted\n } else {\n return false\n }\n }\n set defaultMuted (isTrue) {\n if(this.video) {\n this.video.defaultMuted = isTrue\n }\n }\n get duration () {\n if(this.config.duration) {\n if(this.video) return Math.min(this.config.duration, this.video.duration)\n else return this.config.duration\n }\n if (!this.video) return null\n return this.video.duration\n }\n get ended () {\n if(this.video) {\n return this.video.ended || false\n } else {\n return true\n }\n }\n get error () {\n let err = this.video.error\n if (!err) {\n return null\n }\n let status = [{\n en: 'MEDIA_ERR_ABORTED',\n cn: '取回过程被用户中止'\n }, {\n en: 'MEDIA_ERR_NETWORK',\n cn: '当下载时发生错误'\n }, {\n en: 'MEDIA_ERR_DECODE',\n cn: '当解码时发生错误'\n }, {\n en: 'MEDIA_ERR_SRC_NOT_SUPPORTED',\n cn: '不支持音频/视频'\n }]\n return this.lang ? this.lang[status[err.code - 1].en] : status[err.code - 1].en\n }\n get loop () {\n if(this.video) {\n return this.video.loop\n } else {\n return false\n }\n }\n set loop (isTrue) {\n if(this.video) {\n this.video.loop = isTrue\n }\n }\n get muted () {\n if(this.video) {\n return this.video.muted\n } else {\n return false\n }\n }\n set muted (isTrue) {\n if(this.video) {\n this.video.muted = isTrue\n }\n }\n get networkState () {\n let status = [{\n en: 'NETWORK_EMPTY',\n cn: '音频/视频尚未初始化'\n }, {\n en: 'NETWORK_IDLE',\n cn: '音频/视频是活动的且已选取资源,但并未使用网络'\n }, {\n en: 'NETWORK_LOADING',\n cn: '浏览器正在下载数据'\n }, {\n en: 'NETWORK_NO_SOURCE',\n cn: '未找到音频/视频来源'\n }]\n return this.lang ? this.lang[status[this.video.networkState].en] : status[this.video.networkState].en\n }\n get paused () {\n // if(this.video) {\n // return this.video.paused\n // } else {\n // return false\n // }\n return hasClass(this.root, 'xgplayer-pause')\n }\n get playbackRate () {\n if(this.video) {\n return this.video.playbackRate\n } else {\n return 1\n }\n }\n set playbackRate (rate) {\n if(this.video) {\n this.video.playbackRate = rate\n }\n }\n get played () {\n if(this.video) {\n return this.video.played\n } else {\n return undefined\n }\n }\n get preload () {\n if(this.video) {\n return this.video.preload\n } else {\n return false\n }\n }\n set preload (isTrue) {\n if(this.video) {\n this.video.preload = isTrue\n }\n }\n get readyState () {\n let status = [{\n en: 'HAVE_NOTHING',\n cn: '没有关于音频/视频是否就绪的信息'\n }, {\n en: 'HAVE_METADATA',\n cn: '关于音频/视频就绪的元数据'\n }, {\n en: 'HAVE_CURRENT_DATA',\n cn: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒'\n }, {\n en: 'HAVE_FUTURE_DATA',\n cn: '当前及至少下一帧的数据是可用的'\n }, {\n en: 'HAVE_ENOUGH_DATA',\n cn: '可用数据足以开始播放'\n }]\n return this.lang ? this.lang[status[this.video.readyState].en] : status[this.video.readyState]\n }\n get seekable () {\n if(this.video) {\n return this.video.seekable\n } else {\n return false\n }\n }\n get seeking () {\n if(this.video) {\n return this.video.seeking\n } else {\n return false\n }\n }\n get src () {\n if(this.video) {\n return this.video.src\n } else {\n return undefined\n }\n }\n set src (url) {\n if (!hasClass(this.root, 'xgplayer-ended')) {\n this.emit('urlchange', this.video.src)\n }\n removeClass(this.root, 'xgplayer-ended xgplayer-is-replay xgplayer-is-error')\n this.video.pause()\n this.emit('pause')\n this.video.src = url\n this.emit('srcChange')\n }\n set poster (posterUrl) {\n let poster = findDom(this.root, '.xgplayer-poster')\n if (poster) {\n poster.style.backgroundImage = `url(${posterUrl})`\n }\n }\n get volume () {\n if(this.video) {\n return this.video.volume\n } else {\n return 1\n }\n }\n set volume (vol) {\n if(this.video) {\n this.video.volume = vol\n }\n }\n get fullscreen () {\n return hasClass(this.root, 'xgplayer-is-fullscreen') || hasClass(this.root, 'xgplayer-fullscreen-active')\n }\n get bullet () {\n return findDom(this.root, 'xg-danmu') ? hasClass(findDom(this.root, 'xg-danmu'), 'xgplayer-has-danmu') : false\n }\n get textTrack () {\n return hasClass(this.root, 'xgplayer-is-textTrack')\n }\n get pip () {\n return hasClass(this.root, 'xgplayer-pip-active')\n }\n get isMiniPlayer () {\n return hasClass(this.root, 'xgplayer-miniplayer-active')\n }\n}\n\nexport default Proxy\n","import Proxy from './proxy'\nimport { util, deepCopy, findDom, createDom, addClass, typeOf, hasClass, removeClass, checkIsBrowser } from './utils/util'\nimport sniffer from './utils/sniffer'\nimport XgplayerTimeRange from './utils/xgplayerTimeRange'\nimport Errors from './error'\nimport allOff from 'event-emitter/all-off'\nimport s_i18n from './skin/controls/i18n.js'\nimport './skin/style/index.scss'\n\nimport {\n version\n} from '../version.json'\nclass Player extends Proxy {\n constructor (options) {\n super(options)\n this.config = deepCopy({\n width: 600,\n height: 337.5,\n ignores: [],\n whitelist: [],\n lang: (document.documentElement.getAttribute('lang') || navigator.language || 'zh-cn').toLocaleLowerCase(),\n inactive: 3000,\n volume: 0.6,\n controls: true,\n controlsList: ['nodownload']\n }, options)\n this.version = version\n this.userTimer = null\n this.waitTimer = null\n this.history = []\n this.isProgressMoving = false\n this.root = findDom(document, `#${this.config.id}`)\n this.controls = createDom('xg-controls', '', {\n unselectable: 'on',\n onselectstart: 'return false'\n }, 'xgplayer-controls')\n if (this.config.isShowControl) {\n this.controls.style.display = 'none'\n }\n if (!this.root) {\n let el = this.config.el\n if (el && el.nodeType === 1) {\n this.root = el\n } else {\n this.emit('error', new Errors({\n type: 'use',\n errd: {\n line: 45,\n handle: 'Constructor',\n msg: 'container id can\\'t be empty'\n },\n vid: this.config.vid\n }))\n console.error('container id can\\'t be empty')\n return false\n }\n }\n // this.rootBackup = copyDom(this.root)\n addClass(this.root, `xgplayer xgplayer-${sniffer.device} xgplayer-nostart xgplayer-pause ${this.config.controls ? '' : 'xgplayer-no-controls'}`)\n this.root.appendChild(this.controls)\n if (this.config.fluid) {\n this.root.style['max-width'] = '100%'\n this.root.style['width'] = '100%'\n this.root.style['height'] = '0'\n this.root.style['padding-top'] = `${this.config.height * 100 / this.config.width}%`\n\n this.video.style['position'] = 'absolute'\n this.video.style['top'] = '0'\n this.video.style['left'] = '0'\n } else {\n // this.root.style.width = `${this.config.width}px`\n // this.root.style.height = `${this.config.height}px`\n if (this.config.width) {\n if (typeof this.config.width !== 'number') {\n this.root.style.width = this.config.width\n } else {\n this.root.style.width = `${this.config.width}px`\n }\n }\n if (this.config.height) {\n if (typeof this.config.height !== 'number') {\n this.root.style.height = this.config.height\n } else {\n this.root.style.height = `${this.config.height}px`\n }\n }\n }\n if (this.config.execBeforePluginsCall) {\n this.config.execBeforePluginsCall.forEach(item => {\n item.call(this, this)\n })\n }\n if(!this.config.closeI18n) {\n Player.install(s_i18n.name, s_i18n.method)\n }\n if (this.config.controlStyle && typeOf(this.config.controlStyle) === 'String') {\n let self = this\n fetch(self.config.controlStyle, {\n method: 'GET',\n headers: {\n Accept: 'application/json'\n }\n }).then(function (res) {\n if (res.ok) {\n res.json().then(function (obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n self.config[prop] = obj[prop]\n }\n }\n self.pluginsCall()\n })\n }\n }).catch(function (err) {\n console.log('Fetch错误:' + err)\n })\n } else {\n this.pluginsCall()\n }\n if(this.config.controlPlugins) {\n Player.controlsRun(this.config.controlPlugins, this)\n }\n this.ev.forEach((item) => {\n let evName = Object.keys(item)[0]\n let evFunc = this[item[evName]]\n if (evFunc) {\n this.on(evName, evFunc)\n }\n });\n\n ['focus', 'blur'].forEach(item => {\n this.on(item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)])\n })\n let player = this\n this.mousemoveFunc = function () {\n player.emit('focus')\n if (!player.config.closeFocusVideoFocus) {\n player.video.focus()\n }\n }\n this.root.addEventListener('mousemove', this.mousemoveFunc)\n this.playFunc = function () {\n player.emit('focus')\n if (!player.config.closePlayVideoFocus) {\n player.video.focus()\n }\n }\n player.once('play', this.playFunc)\n\n this.getVideoSize = function () {\n if (this.video.videoWidth && this.video.videoHeight) {\n let containerSize = player.root.getBoundingClientRect()\n if (player.config.fitVideoSize === 'auto') {\n if (containerSize.width / containerSize.height > this.video.videoWidth / this.video.videoHeight) {\n player.root.style.height = `${this.video.videoHeight / this.video.videoWidth * containerSize.width}px`\n } else {\n player.root.style.width = `${this.video.videoWidth / this.video.videoHeight * containerSize.height}px`\n }\n } else if (player.config.fitVideoSize === 'fixWidth') {\n player.root.style.height = `${this.video.videoHeight / this.video.videoWidth * containerSize.width}px`\n } else if (player.config.fitVideoSize === 'fixHeight') {\n player.root.style.width = `${this.video.videoWidth / this.video.videoHeight * containerSize.height}px`\n }\n }\n }\n player.once('loadeddata', this.getVideoSize)\n\n setTimeout(() => {\n this.emit('ready')\n this.isReady = true\n }, 0)\n\n if (this.config.videoInit) {\n if (hasClass(this.root, 'xgplayer-nostart')) {\n this.start()\n }\n }\n if (player.config.rotate) {\n player.on('requestFullscreen', this.updateRotateDeg)\n player.on('exitFullscreen', this.updateRotateDeg)\n }\n\n function onDestroy () {\n player.root.removeEventListener('mousemove', player.mousemoveFunc)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n }\n\n attachVideo () {\n if(this.video && this.video.nodeType === 1) {\n this.root.insertBefore(this.video, this.root.firstChild)\n }\n setTimeout(() => {\n this.emit('complete')\n if(this.danmu && typeof this.danmu.resize === 'function') {\n this.danmu.resize()\n }\n }, 1)\n }\n\n start (url = this.config.url) {\n if(!this.video) return\n let player = this\n if (!url || url === '') {\n this.emit('urlNull')\n return\n }\n this.canPlayFunc = function () {\n player.off('canplay', player.canPlayFunc)\n let playPromise = player.video.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.then(function () {\n player.emit('autoplay started')\n }).catch(function () {\n player.emit('autoplay was prevented')\n addClass(player.root, 'xgplayer-is-autoplay')\n })\n }\n }\n if (typeOf(url) !== 'Array') {\n if (typeOf(url) === 'String' && url.indexOf('blob:') > -1 && url === this.video.src) {\n // 在Chromium环境下用mse url给video二次赋值会导致错误\n } else {\n this.video.src = url\n }\n } else {\n url.forEach(item => {\n this.video.appendChild(createDom('source', '', {\n src: `${item.src}`,\n type: `${item.type || ''}`\n }))\n })\n }\n if (this.config.autoplay) {\n if (sniffer.os.isPhone) {\n this.canPlayFunc()\n } else {\n this.on('canplay', this.canPlayFunc)\n }\n }\n if(!this.config.disableStartLoad) {\n this.video.load()\n }\n this.attachVideo()\n }\n\n reload () {\n this.video.load()\n this.reloadFunc = function () {\n // eslint-disable-next-line handle-callback-err\n let playPromise = this.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n this.once('loadeddata', this.reloadFunc)\n }\n\n destroy (isDelDom = true) {\n let player = this\n clearInterval(this.bulletResizeTimer)\n for (let k in this._interval) {\n clearInterval(this._interval[k])\n this._interval[k] = null\n }\n if (this.checkTimer) {\n clearInterval(this.checkTimer)\n }\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n this.ev.forEach((item) => {\n let evName = Object.keys(item)[0]\n let evFunc = this[item[evName]]\n if (evFunc) {\n this.off(evName, evFunc)\n }\n });\n if (this.loadeddataFunc) {\n this.off('loadeddata', this.loadeddataFunc)\n }\n if (this.reloadFunc) {\n this.off('loadeddata', this.reloadFunc)\n }\n if (this.replayFunc) {\n this.off('play', this.replayFunc)\n }\n if (this.playFunc) {\n this.off('play', this.playFunc)\n }\n if (this.getVideoSize) {\n this.off('loadeddata', this.getVideoSize)\n };\n ['focus', 'blur'].forEach(item => {\n this.off(item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)])\n })\n if (!this.config.keyShortcut || this.config.keyShortcut === 'on') {\n ['video', 'controls'].forEach(item => {\n if (this[item]) {\n this[item].removeEventListener('keydown', function (e) { player.onKeydown(e, player) })\n }\n })\n }\n\n function destroyFunc () {\n this.emit('destroy')\n // this.root.id = this.root.id + '_del'\n // parentNode.insertBefore(this.rootBackup, this.root)\n\n // fix video destroy https://stackoverflow.com/questions/3258587/how-to-properly-unload-destroy-a-video-element\n this.video.removeAttribute('src') // empty source\n this.video.load()\n if (isDelDom) {\n // parentNode.removeChild(this.root)\n this.root.innerHTML = ''\n let classNameList = this.root.className.split(' ')\n if (classNameList.length > 0) {\n this.root.className = classNameList.filter(name => name.indexOf('xgplayer') < 0).join(' ')\n } else {\n this.root.className = ''\n }\n }\n\n for (let k in this) {\n // if (k !== 'config') {\n delete this[k]\n // }\n }\n allOff(this)\n }\n\n // destroy immediately\n // Don't use the paused property detection, it doesn't use MediaElement.paused, \n // so it's not accurate enough. Destroy after waiting for pause event, this \n // changes the synchronous behavior of destroy api\n destroyFunc.call(this)\n\n super.destroy()\n }\n\n replay () {\n let self = this\n let _replay = this._replay\n // ie9 bugfix\n removeClass(this.root, 'xgplayer-ended')\n if(sniffer.browser.indexOf('ie') > -1) {\n this.emit('play')\n this.emit('playing')\n }\n \n if (_replay && _replay instanceof Function) {\n _replay()\n } else {\n this.currentTime = 0\n // eslint-disable-next-line handle-callback-err\n let playPromise = this.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n }\n\n userGestureTrigEvent (name, param) {\n const defaultUserGestureEventHandler = (name, param) => {\n this.emit(name, param)\n }\n if(this.config.userGestureEventMiddleware && typeof this.config.userGestureEventMiddleware[name] === 'function') {\n this.config.userGestureEventMiddleware[name].call(this, this, name, param, defaultUserGestureEventHandler)\n } else {\n defaultUserGestureEventHandler.call(this, name, param);\n }\n }\n\n pluginsCall () {\n if(Player.plugins['s_i18n']) {\n Player.plugins['s_i18n'].call(this, this)\n }\n let self = this\n if (Player.plugins) {\n let ignores = this.config.ignores\n Object.keys(Player.plugins).forEach(name => {\n let descriptor = Player.plugins[name]\n if(!descriptor || typeof descriptor !== 'function'){\n console.warn('plugin name', name , 'is invalid')\n } else {\n if (!ignores.some(item => name === item || name === 's_' + item) && name !== 's_i18n') {\n if (['pc', 'tablet', 'mobile'].some(type => type === name)) {\n if (name === sniffer.device) {\n setTimeout(() => {\n // if destroyed, skip\n if (!self.video) return;\n descriptor.call(self, self)\n }, 0)\n }\n } else {\n descriptor.call(this, this)\n }\n }\n }\n })\n }\n }\n\n onFocus () {\n let player = this\n if(hasClass(this.root, 'xgplayer-inactive')) {\n player.emit('controlShow')\n }\n removeClass(this.root, 'xgplayer-inactive')\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n player.userTimer = setTimeout(function () {\n player.emit('blur')\n }, player.config.inactive)\n }\n\n onBlur () {\n // this.video.blur()\n if ((this.config.enablePausedInactive || !this.paused) && !this.ended && !this.config.closeInactive) {\n if(!hasClass(this.root, 'xgplayer-inactive')) {\n this.emit('controlHide')\n }\n addClass(this.root, 'xgplayer-inactive')\n }\n }\n\n onPlay () {\n addClass(this.root, 'xgplayer-isloading')\n addClass(this.root, 'xgplayer-playing')\n removeClass(this.root, 'xgplayer-pause')\n }\n\n onPause () {\n addClass(this.root, 'xgplayer-pause')\n if (this.userTimer) {\n clearTimeout(this.userTimer)\n }\n this.emit('focus')\n }\n\n onEnded () {\n addClass(this.root, 'xgplayer-ended')\n removeClass(this.root, 'xgplayer-playing')\n }\n\n onSeeking () {\n this.isSeeking = true\n // 兼容IE下无法触发waiting事件的问题 seeking的时候直接出发waiting\n this.onWaiting()\n // addClass(this.root, 'seeking');\n }\n\n // onTimeupdate () {\n // // for ie,playing fired before waiting\n // if (this.waitTimer) {\n // clearTimeout(this.waitTimer)\n // }\n // removeClass(this.root, 'xgplayer-isloading')\n\n // }\n\n onSeeked () {\n // for ie,playing fired before waiting\n this.once('timeupdate', () => {\n this.isSeeking = false\n })\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n removeClass(this.root, 'xgplayer-isloading')\n }\n\n onWaiting () {\n let self = this\n if (self.waitTimer) {\n clearTimeout(self.waitTimer)\n }\n if (self.checkTimer) {\n clearInterval(self.checkTimer)\n self.checkTimer = null\n }\n let time = self.currentTime\n self.waitTimer = setTimeout(function () {\n addClass(self.root, 'xgplayer-isloading')\n self.checkTimer = setInterval(function () {\n if (self.currentTime !== time) {\n removeClass(self.root, 'xgplayer-isloading')\n clearInterval(self.checkTimer)\n self.checkTimer = null\n }\n }, 1000)\n }, 500)\n }\n\n onPlaying () {\n // 兼容safari下无法自动播放会触发该事件的场景\n if (this.paused) {\n return\n }\n this.isSeeking = false\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n removeClass(this.root, 'xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay')\n addClass(this.root, 'xgplayer-playing')\n }\n\n static install (name, descriptor) {\n if (!checkIsBrowser()) {\n return\n }\n if (!Player.plugins) {\n Player.plugins = {}\n }\n if (!Player.plugins[name]) {\n Player.plugins[name] = descriptor\n }\n }\n\n static installAll (list) {\n for(let k = 0; k < list.length; k++){\n Player.install(list[k].name, list[k].method)\n }\n }\n\n static use (name, descriptor) {\n if (!Player.plugins) {\n Player.plugins = {}\n }\n Player.plugins[name] = descriptor\n }\n\n static useAll (list) {\n for (let k in list) {\n Player.use(list[k].name, list[k].method)\n }\n }\n\n static controlsRun (controlLst, context) {\n controlLst.forEach(function(control) {\n control.method.call(context)\n })\n }\n}\n\nPlayer.util = util\nPlayer.sniffer = sniffer\nPlayer.Errors = Errors\nPlayer.XgplayerTimeRange = XgplayerTimeRange\n\nexport default Player\n","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","export default class XgplayerTimeRange {\n constructor(bufferedList) {\n this.bufferedList = bufferedList\n }\n\n start (index) {\n return this.bufferedList[index].start\n }\n\n end (index) {\n return this.bufferedList[index].end\n }\n\n get length () {\n return this.bufferedList.length\n }\n}\n","import { typeOf } from '../../utils/util'\n\nlet s_i18n = function () {\n let player = this; let lang = {};\n lang.en = {\n HAVE_NOTHING: 'There is no information on whether audio/video is ready',\n HAVE_METADATA: 'Audio/video metadata is ready ',\n HAVE_CURRENT_DATA: 'Data about the current play location is available, but there is not enough data to play the next frame/millisecond',\n HAVE_FUTURE_DATA: 'Current and at least one frame of data is available',\n HAVE_ENOUGH_DATA: 'The available data is sufficient to start playing',\n NETWORK_EMPTY: 'Audio/video has not been initialized',\n NETWORK_IDLE: 'Audio/video is active and has been selected for resources, but no network is used',\n NETWORK_LOADING: 'The browser is downloading the data',\n NETWORK_NO_SOURCE: 'No audio/video source was found',\n MEDIA_ERR_ABORTED: 'The fetch process is aborted by the user',\n MEDIA_ERR_NETWORK: 'An error occurred while downloading',\n MEDIA_ERR_DECODE: 'An error occurred while decoding',\n MEDIA_ERR_SRC_NOT_SUPPORTED: 'Audio/video is not supported',\n REPLAY: 'Replay',\n ERROR: 'Network is offline',\n PLAY_TIPS: 'Play',\n PAUSE_TIPS: 'Pause',\n PLAYNEXT_TIPS: 'Play next',\n DOWNLOAD_TIPS: 'Download',\n ROTATE_TIPS: 'Rotate',\n RELOAD_TIPS: 'Reload',\n FULLSCREEN_TIPS: \"Fullscreen\",\n EXITFULLSCREEN_TIPS: 'Exit fullscreen',\n CSSFULLSCREEN_TIPS: 'Cssfullscreen',\n EXITCSSFULLSCREEN_TIPS: 'Exit cssfullscreen',\n TEXTTRACK: 'Caption',\n PIP: 'Pip',\n MINIPLAYER: 'Miniplayer',\n SCREENSHOT: 'Screenshot',\n LIVE: 'LIVE',\n OFF: 'Off',\n MINIPLAYER_DRAG: 'Click and hold to drag',\n AIRPLAY_TIPS: 'Airplay',\n }\n lang['zh-cn'] = {\n HAVE_NOTHING: '没有关于音频/视频是否就绪的信息',\n HAVE_METADATA: '音频/视频的元数据已就绪',\n HAVE_CURRENT_DATA: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒',\n HAVE_FUTURE_DATA: '当前及至少下一帧的数据是可用的',\n HAVE_ENOUGH_DATA: '可用数据足以开始播放',\n NETWORK_EMPTY: '音频/视频尚未初始化',\n NETWORK_IDLE: '音频/视频是活动的且已选取资源,但并未使用网络',\n NETWORK_LOADING: '浏览器正在下载数据',\n NETWORK_NO_SOURCE: '未找到音频/视频来源',\n MEDIA_ERR_ABORTED: '取回过程被用户中止',\n MEDIA_ERR_NETWORK: '当下载时发生错误',\n MEDIA_ERR_DECODE: '当解码时发生错误',\n MEDIA_ERR_SRC_NOT_SUPPORTED: '不支持的音频/视频格式',\n REPLAY: '重播',\n ERROR: '网络连接似乎出现了问题',\n PLAY_TIPS: '播放',\n PAUSE_TIPS: '暂停',\n PLAYNEXT_TIPS: '下一集',\n DOWNLOAD_TIPS: '下载',\n ROTATE_TIPS: '旋转',\n RELOAD_TIPS: '重新载入',\n FULLSCREEN_TIPS: \"进入全屏\",\n EXITFULLSCREEN_TIPS: '退出全屏',\n CSSFULLSCREEN_TIPS: '进入样式全屏',\n EXITCSSFULLSCREEN_TIPS: '退出样式全屏',\n TEXTTRACK: '字幕',\n PIP: '画中画',\n MINIPLAYER: '迷你播放器',\n SCREENSHOT: '截图',\n LIVE: '正在直播',\n OFF: '关闭',\n MINIPLAYER_DRAG: '点击按住可拖动视频',\n AIRPLAY_TIPS: '隔空播放',\n }\n lang['zh-hk'] = {\n HAVE_NOTHING: '沒有關於音頻/視頻是否就緒的信息',\n HAVE_METADATA: '音頻/視頻的元數據已就緒',\n HAVE_CURRENT_DATA: '關於當前播放位置的數據是可用的,但沒有足夠的數據來播放下壹幀/毫秒',\n HAVE_FUTURE_DATA: '當前及至少下壹幀的數據是可用的',\n HAVE_ENOUGH_DATA: '可用數據足以開始播放',\n NETWORK_EMPTY: '音頻/視頻尚未初始化',\n NETWORK_IDLE: '音頻/視頻是活動的且已選取資源,但並未使用網絡',\n NETWORK_LOADING: '瀏覽器正在下載數據',\n NETWORK_NO_SOURCE: '未找到音頻/視頻來源',\n MEDIA_ERR_ABORTED: '取回過程被用戶中止',\n MEDIA_ERR_NETWORK: '當下載時發生錯誤',\n MEDIA_ERR_DECODE: '當解碼時發生錯誤',\n MEDIA_ERR_SRC_NOT_SUPPORTED: '不支持的音頻/視頻格式',\n REPLAY: '重播',\n ERROR: '網絡連接似乎出現了問題',\n PLAY_TIPS: '播放',\n PAUSE_TIPS: '暫停',\n PLAYNEXT_TIPS: '下壹集',\n DOWNLOAD_TIPS: '下載',\n ROTATE_TIPS: '旋轉',\n RELOAD_TIPS: '重新載入',\n FULLSCREEN_TIPS: \"進入全屏\",\n EXITFULLSCREEN_TIPS: '退出全屏',\n CSSFULLSCREEN_TIPS: '進入樣式全屏',\n EXITCSSFULLSCREEN_TIPS: '退出樣式全屏',\n TEXTTRACK: '字幕',\n PIP: '畫中畫',\n MINIPLAYER: '迷妳播放器',\n SCREENSHOT: '截圖',\n LIVE: '正在直播',\n OFF: '關閉',\n MINIPLAYER_DRAG: '點擊按住可拖動視頻',\n AIRPLAY_TIPS: '隔空播放',\n }\n lang['jp'] = {\n HAVE_NOTHING: 'オーディオ/ビデオが準備できているか情報がありません',\n HAVE_METADATA: 'オーディオ/ビデオのメタデータは準備できています',\n HAVE_CURRENT_DATA: '現在の再生位置に関するデータは利用可能ですが、次のフレーム/ミリ秒を再生するのに十分なデータがありません',\n HAVE_FUTURE_DATA: '現在、少なくとも次のフレームのデータが利用可能です',\n HAVE_ENOUGH_DATA: '利用可能なデータは再生を開始するのに十分です',\n NETWORK_EMPTY: 'オーディオ/ビデオが初期化されていません',\n NETWORK_IDLE: 'オーディオ/ビデオはアクティブでリソースが選択されていますが、ネットワークが使用されていません',\n NETWORK_LOADING: 'ブラウザーはデータをダウンロードしています',\n NETWORK_NO_SOURCE: 'オーディオ/ビデオ のソースが見つかりません',\n MEDIA_ERR_ABORTED: 'ユーザーによってフェッチプロセスが中止されました',\n MEDIA_ERR_NETWORK: 'ダウンロード中にエラーが発生しました',\n MEDIA_ERR_DECODE: 'デコード中にエラーが発生しました',\n MEDIA_ERR_SRC_NOT_SUPPORTED: 'オーディオ/ビデオ の形式がサポートされていません',\n REPLAY: 'リプレイ',\n ERROR: 'ネットワークの接続に問題が発生しました',\n PLAY_TIPS: 'プレイ',\n PAUSE_TIPS: '一時停止',\n PLAYNEXT_TIPS: '次をプレイ',\n DOWNLOAD_TIPS: 'ダウンロード',\n ROTATE_TIPS: '回転',\n RELOAD_TIPS: '再読み込み',\n FULLSCREEN_TIPS: \"フルスクリーン\",\n EXITFULLSCREEN_TIPS: 'フルスクリーンを終了',\n CSSFULLSCREEN_TIPS: 'シアターモード',\n EXITCSSFULLSCREEN_TIPS: 'シアターモードを終了',\n TEXTTRACK: '字幕',\n PIP: 'ミニプレーヤー',\n MINIPLAYER: 'ミニプレーヤー',\n SCREENSHOT: 'スクリーンショット',\n LIVE: '生放送',\n OFF: 'オフ',\n MINIPLAYER_DRAG: 'ボタンを押して働画をドラッグする',\n AIRPLAY_TIPS: '隔空放送',\n }\n\n Object.defineProperty(player, 'lang', {\n get: function () {\n if (player.config) {\n return lang[player.config.lang] || lang['en']\n } else {\n return lang['en']\n }\n },\n set: function (value) {\n if (typeOf(value) === 'Object') {\n Object.keys(value).forEach(key => {\n lang[key] = value[key]\n })\n }\n }\n })\n\n}\n\nexport default {\n name: 's_i18n',\n method: s_i18n\n}","\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n","'use strict';\n\nvar d = require('d')\n , callable = require('es5-ext/object/valid-callable')\n\n , apply = Function.prototype.apply, call = Function.prototype.call\n , create = Object.create, defineProperty = Object.defineProperty\n , defineProperties = Object.defineProperties\n , hasOwnProperty = Object.prototype.hasOwnProperty\n , descriptor = { configurable: true, enumerable: false, writable: true }\n\n , on, once, off, emit, methods, descriptors, base;\n\non = function (type, listener) {\n\tvar data;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) {\n\t\tdata = descriptor.value = create(null);\n\t\tdefineProperty(this, '__ee__', descriptor);\n\t\tdescriptor.value = null;\n\t} else {\n\t\tdata = this.__ee__;\n\t}\n\tif (!data[type]) data[type] = listener;\n\telse if (typeof data[type] === 'object') data[type].push(listener);\n\telse data[type] = [data[type], listener];\n\n\treturn this;\n};\n\nonce = function (type, listener) {\n\tvar once, self;\n\n\tcallable(listener);\n\tself = this;\n\ton.call(this, type, once = function () {\n\t\toff.call(self, type, once);\n\t\tapply.call(listener, this, arguments);\n\t});\n\n\tonce.__eeOnceListener__ = listener;\n\treturn this;\n};\n\noff = function (type, listener) {\n\tvar data, listeners, candidate, i;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return this;\n\tdata = this.__ee__;\n\tif (!data[type]) return this;\n\tlisteners = data[type];\n\n\tif (typeof listeners === 'object') {\n\t\tfor (i = 0; (candidate = listeners[i]); ++i) {\n\t\t\tif ((candidate === listener) ||\n\t\t\t\t\t(candidate.__eeOnceListener__ === listener)) {\n\t\t\t\tif (listeners.length === 2) data[type] = listeners[i ? 0 : 1];\n\t\t\t\telse listeners.splice(i, 1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ((listeners === listener) ||\n\t\t\t\t(listeners.__eeOnceListener__ === listener)) {\n\t\t\tdelete data[type];\n\t\t}\n\t}\n\n\treturn this;\n};\n\nemit = function (type) {\n\tvar i, l, listener, listeners, args;\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return;\n\tlisteners = this.__ee__[type];\n\tif (!listeners) return;\n\n\tif (typeof listeners === 'object') {\n\t\tl = arguments.length;\n\t\targs = new Array(l - 1);\n\t\tfor (i = 1; i < l; ++i) args[i - 1] = arguments[i];\n\n\t\tlisteners = listeners.slice();\n\t\tfor (i = 0; (listener = listeners[i]); ++i) {\n\t\t\tapply.call(listener, this, args);\n\t\t}\n\t} else {\n\t\tswitch (arguments.length) {\n\t\tcase 1:\n\t\t\tcall.call(listeners, this);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tcall.call(listeners, this, arguments[1]);\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tcall.call(listeners, this, arguments[1], arguments[2]);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tl = arguments.length;\n\t\t\targs = new Array(l - 1);\n\t\t\tfor (i = 1; i < l; ++i) {\n\t\t\t\targs[i - 1] = arguments[i];\n\t\t\t}\n\t\t\tapply.call(listeners, this, args);\n\t\t}\n\t}\n};\n\nmethods = {\n\ton: on,\n\tonce: once,\n\toff: off,\n\temit: emit\n};\n\ndescriptors = {\n\ton: d(on),\n\tonce: d(once),\n\toff: d(off),\n\temit: d(emit)\n};\n\nbase = defineProperties({}, descriptors);\n\nmodule.exports = exports = function (o) {\n\treturn (o == null) ? create(base) : defineProperties(Object(o), descriptors);\n};\nexports.methods = methods;\n","'use strict';\n\nvar value = require('es5-ext/object/valid-object')\n\n , hasOwnProperty = Object.prototype.hasOwnProperty;\n\nmodule.exports = function (emitter/*, type*/) {\n\tvar type = arguments[1], data;\n\n\tvalue(emitter);\n\n\tif (type !== undefined) {\n\t\tdata = hasOwnProperty.call(emitter, '__ee__') && emitter.__ee__;\n\t\tif (!data) return;\n\t\tif (data[type]) delete data[type];\n\t\treturn;\n\t}\n\tif (hasOwnProperty.call(emitter, '__ee__')) delete emitter.__ee__;\n};\n","import { hasClass } from '../utils/util'\n\nlet mobile = function () {\n let player = this\n let root = player.root\n let clk = 0; let _click_\n let clickedTime = {\n first: '',\n second: ''\n }\n\n player.onElementTouchend = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (hasClass(root, 'xgplayer-inactive')) {\n player.emit('focus')\n } else {\n player.emit('blur')\n }\n if (!player.config.closeVideoTouch && !player.isTouchMove) {\n function onTouch() {\n _click_ = setTimeout(function () {\n if (hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n clk = 0\n }, 200)\n }\n if (!player.config.closeVideoClick) {\n clk++\n if (_click_) {\n clearTimeout(_click_)\n }\n if (clk === 1) {\n if(player.config.enableVideoDbltouch) {\n clickedTime.first = new Date()\n } else {\n onTouch()\n }\n } else if (clk === 2) {\n if(player.config.enableVideoDbltouch) {\n clickedTime.second = new Date()\n if (Math.abs(clickedTime.first - clickedTime.second) < 400) {\n // 双击\n onTouch()\n } else {\n clickedTime.first = new Date()\n clk = 1\n }\n } else {\n clk = 0\n }\n } else {\n clk = 0\n }\n }\n }\n }\n\n function onReady (e) {\n player.video.addEventListener('touchend', function (e) {\n player.onElementTouchend(e, player.video)\n })\n player.video.addEventListener('touchstart', () => {\n player.isTouchMove = false\n })\n player.video.addEventListener('touchmove', () => {\n player.isTouchMove = true\n })\n if (player.config.autoplay) {\n player.start()\n }\n }\n player.once('ready', onReady)\n\n function onDestroy () {\n player.off('ready', onReady)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'mobile',\n method: mobile\n}","import { hasClass } from '../utils/util'\n\nlet pc = function () {\n let player = this\n if(!player.controls || !player.video) return\n let controls = player.controls; let root = player.root\n let clk = 0; let _click_\n\n player.onElementClick = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (!player.config.closeVideoClick) {\n clk++\n if (_click_) {\n clearTimeout(_click_)\n }\n if (clk === 1) {\n _click_ = setTimeout(function () {\n if (hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n clk = 0\n }, 200)\n } else {\n clk = 0\n }\n }\n }\n player.video.addEventListener('click', function (e) { player.onElementClick(e, player.video) }, false)\n\n player.onElementDblclick = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (!player.config.closeVideoDblclick) {\n let fullscreen = controls.querySelector('.xgplayer-fullscreen')\n if (fullscreen) {\n let clk\n if (document.createEvent) {\n clk = document.createEvent('Event')\n clk.initEvent('click', true, true)\n } else {\n clk = new Event('click')\n }\n fullscreen.dispatchEvent(clk)\n }\n }\n }\n player.video.addEventListener('dblclick', function (e) { player.onElementDblclick(e, player.video) }, false)\n\n function onMouseEnter () {\n clearTimeout(player.leavePlayerTimer)\n player.emit('focus', player)\n }\n root.addEventListener('mouseenter', onMouseEnter)\n\n function onMouseLeave () {\n if(!player.config.closePlayerBlur) {\n player.leavePlayerTimer = setTimeout(function () {\n player.emit('blur', player)\n }, player.config.leavePlayerTime || 0)\n }\n }\n root.addEventListener('mouseleave', onMouseLeave)\n\n function onControlMouseEnter (e) {\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n }\n controls.addEventListener('mouseenter', onControlMouseEnter)\n\n function onControlMouseLeave (e) {\n if(!player.config.closeControlsBlur) {\n player.emit('focus', player)\n }\n }\n controls.addEventListener('mouseleave', onControlMouseLeave)\n\n function onControlClick (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n controls.addEventListener('click', onControlClick)\n\n function onReady (e) {\n if (player.config.autoplay) {\n player.start()\n }\n }\n player.once('ready', onReady)\n\n function onDestroy () {\n root.removeEventListener('mouseenter', onMouseEnter)\n root.removeEventListener('mouseleave', onMouseLeave)\n player.off('ready', onReady)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'pc',\n method: pc\n}","import { addClass, hasClass, removeClass } from '../utils/util'\n\nlet start = function () {\n let player = this\n let root = player.root\n\n function onCanPlay () {\n player.off('canplay', onCanPlay)\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n\n function onStartBtnClick () {\n if (hasClass(root, 'xgplayer-nostart')) {\n removeClass(root, 'xgplayer-nostart') // for ie quick switch\n addClass(root, 'xgplayer-is-enter')\n\n if(typeof root.contains === 'function') {\n if((player.video && player.video.nodeType === 1 && !root.contains(player.video)) || (player.video && player.video.nodeType !== 1 && player.video.mediaSource === undefined)) {\n player.once('canplay', onCanPlay)\n player.start()\n } else {\n onCanPlay()\n }\n } else {\n if((player.video && player.video.nodeType === 1 && !root.querySelector(this.videoConfig.mediaType)) || (player.video && player.video.nodeType !== 1 && player.video.mediaSource === undefined)) {\n player.once('canplay', onCanPlay)\n player.start()\n } else {\n onCanPlay()\n }\n }\n } else {\n if (player.paused) {\n removeClass(root, 'xgplayer-nostart xgplayer-isloading')\n setTimeout(() => {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }, 10)\n }\n }\n }\n player.on('startBtnClick', onStartBtnClick)\n\n function onDestroy () {\n player.off('startBtnClick', onStartBtnClick)\n player.off('canplay', onCanPlay)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'start',\n method: start\n}","import { createDom, addClass, removeClass, isWeiXin, isUc } from '../../utils/util'\nimport StartPlayIcon from '../assets/startPlay.svg'\nimport StartPauseIcon from '../assets/startPause.svg'\nimport '../style/controls/start.scss'\n\nlet s_start = function () {\n let player = this\n let root = player.root\n let btn = createDom('xg-start', `<div class=\"xgplayer-icon-play\">${StartPlayIcon}</div>\n <div class=\"xgplayer-icon-pause\">${StartPauseIcon}</div>`, {}, 'xgplayer-start')\n function onPlayerReady(player) {\n addClass(player.root, 'xgplayer-skin-default')\n if (player.config) {\n player.config.autoplay && !isWeiXin() && !isUc() && addClass(player.root, 'xgplayer-is-enter')\n if (player.config.lang && player.config.lang === 'en') {\n addClass(player.root, 'xgplayer-lang-is-en')\n } else if (player.config.lang === 'jp') {\n addClass(player.root, 'xgplayer-lang-is-jp')\n }\n if(!player.config.enableContextmenu) {\n player.video.addEventListener('contextmenu', e => {\n e.preventDefault()\n e.stopPropagation()\n })\n }\n }\n }\n\n if(player.config && player.config.hideStartBtn) {\n addClass(root, 'xgplayer-start-hide')\n }\n\n if (player.isReady) {\n root.appendChild(btn)\n onPlayerReady(player)\n } else {\n player.once('ready', () => {\n root.appendChild(btn)\n onPlayerReady(player)\n });\n }\n\n player.once('autoplay was prevented', () => {\n removeClass(player.root, 'xgplayer-is-enter')\n addClass(player.root, 'xgplayer-nostart')\n })\n\n player.once('canplay', () => {\n removeClass(player.root, 'xgplayer-is-enter')\n })\n\n btn.onclick = e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('startBtnClick')\n }\n}\n\nexport default {\n name: 's_start',\n method: s_start\n}","\"use strict\";\n\nvar isValue = require(\"type/value/is\")\n , isPlainFunction = require(\"type/plain-function/is\")\n , assign = require(\"es5-ext/object/assign\")\n , normalizeOpts = require(\"es5-ext/object/normalize-options\")\n , contains = require(\"es5-ext/string/#/contains\");\n\nvar d = (module.exports = function (dscr, value/*, options*/) {\n\tvar c, e, w, options, desc;\n\tif (arguments.length < 2 || typeof dscr !== \"string\") {\n\t\toptions = value;\n\t\tvalue = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[2];\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t\tw = contains.call(dscr, \"w\");\n\t} else {\n\t\tc = w = true;\n\t\te = false;\n\t}\n\n\tdesc = { value: value, configurable: c, enumerable: e, writable: w };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n});\n\nd.gs = function (dscr, get, set/*, options*/) {\n\tvar c, e, options, desc;\n\tif (typeof dscr !== \"string\") {\n\t\toptions = set;\n\t\tset = get;\n\t\tget = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[3];\n\t}\n\tif (!isValue(get)) {\n\t\tget = undefined;\n\t} else if (!isPlainFunction(get)) {\n\t\toptions = get;\n\t\tget = set = undefined;\n\t} else if (!isValue(set)) {\n\t\tset = undefined;\n\t} else if (!isPlainFunction(set)) {\n\t\toptions = set;\n\t\tset = undefined;\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t} else {\n\t\tc = true;\n\t\te = false;\n\t}\n\n\tdesc = { get: get, set: set, configurable: c, enumerable: e };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n","\"use strict\";\n\nvar isFunction = require(\"../function/is\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n","\"use strict\";\n\nvar isPrototype = require(\"../prototype/is\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n","\"use strict\";\n\nvar isObject = require(\"../object/is\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) return false;\n\ttry {\n\t\tif (!value.constructor) return false;\n\t\treturn value.constructor.prototype === value;\n\t} catch (error) {\n\t\treturn false;\n\t}\n};\n","\"use strict\";\n\nvar isValue = require(\"../value/is\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.assign : require(\"./shim\");\n","\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n","\"use strict\";\n\nvar keys = require(\"../keys\")\n , value = require(\"../valid-value\")\n , max = Math.max;\n\nmodule.exports = function (dest, src /*, …srcn*/) {\n\tvar error, i, length = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry {\n\t\t\tdest[key] = src[key];\n\t\t} catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < length; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.keys : require(\"./shim\");\n","\"use strict\";\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys(\"primitive\");\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n","\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n","\"use strict\";\n\n// eslint-disable-next-line no-empty-function\nmodule.exports = function () {};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n\treturn value;\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar forEach = Array.prototype.forEach, create = Object.create;\n\nvar process = function (src, obj) {\n\tvar key;\n\tfor (key in src) obj[key] = src[key];\n};\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function (opts1 /*, …options*/) {\n\tvar result = create(null);\n\tforEach.call(arguments, function (options) {\n\t\tif (!isValue(options)) return;\n\t\tprocess(Object(options), result);\n\t});\n\treturn result;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? String.prototype.contains : require(\"./shim\");\n","\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n","\"use strict\";\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString /*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n","\"use strict\";\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n","\"use strict\";\n\nvar isObject = require(\"./is-object\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n\treturn value;\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../node_modules/postcss-loader/lib/index.js!../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default{background:#000;width:100%;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.xgplayer-skin-default *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;white-space:normal;word-wrap:normal}.xgplayer-skin-default.xgplayer-rotate-fullscreen{position:absolute;top:0;left:100%;bottom:0;right:0;height:100vw!important;width:100vh!important;-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.xgplayer-skin-default.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer-skin-default.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer-skin-default video{width:100%;height:100%;outline:none}.xgplayer-skin-default .xgplayer-none{display:none}@-webkit-keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}.xgplayer-skin-default .xgplayer-controls{display:-webkit-flex;display:-moz-box;display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.37),rgba(0,0,0,.75),rgba(0,0,0,.75));z-index:10}.xgplayer-skin-default.xgplayer-inactive .xgplayer-controls,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-progress,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-time,.xgplayer-skin-default.xgplayer-no-controls .xgplayer-controls,.xgplayer-skin-default.xgplayer-nostart .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-live{display:block}.xgplayer-skin-default .xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;-webkit-order:1;-moz-box-ordinal-group:2;order:1}.xgplayer-skin-default .xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-skin-default .xgplayer-icon svg{position:absolute}.xgplayer-skin-default .xgplayer-tips{background:rgba(0,0,0,.54);border-radius:1px;display:none;position:absolute;font-family:PingFangSC-Regular;font-size:11px;color:#fff;padding:2px 4px;text-align:center;top:-30px;left:50%;margin-left:-16px;width:auto;white-space:nowrap}.xgplayer-skin-default.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-skin-default .xgplayer-screen-container{display:block;width:100%}\", \"\"]);\n\n// exports\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./start.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./start.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./start.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-start{border-radius:50%;display:inline-block;width:70px;height:70px;background:rgba(0,0,0,.38);overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:115;margin:-35px auto auto -35px;cursor:pointer}.xgplayer-skin-default .xgplayer-start div{position:absolute}.xgplayer-skin-default .xgplayer-start div svg{fill:hsla(0,0%,100%,.7)}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-start:hover{opacity:.85}.xgplayer-skin-default.xgplayer-pause.xgplayer-start-hide .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-start-hide .xgplayer-start{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start{display:inline-block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start,.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-pause{display:none}\", \"\"]);\n\n// exports\n","import { hasClass, addClass, removeClass, PresentationMode, checkWebkitSetPresentationMode } from '../utils/util'\n\nlet fullscreen = function () {\n let player = this\n let root = player.root\n\n function onFullscreenBtnClick () {\n if (player.config.rotateFullscreen) {\n if (hasClass(root, 'xgplayer-rotate-fullscreen')) {\n player.exitRotateFullscreen()\n } else {\n player.getRotateFullscreen()\n }\n } else {\n if (hasClass(root, 'xgplayer-is-fullscreen')) {\n player.exitFullscreen(root)\n } else {\n player.getFullscreen(root)\n }\n }\n }\n player.on('fullscreenBtnClick', onFullscreenBtnClick)\n\n function onFullscreenChange () {\n let fullscreenEl = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement\n if (fullscreenEl && fullscreenEl === root) {\n addClass(root, 'xgplayer-is-fullscreen')\n player.emit('requestFullscreen')\n } else if (hasClass(root, 'xgplayer-is-fullscreen')) {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n }\n if (player.danmu && typeof player.danmu.resize === 'function') {\n player.danmu.resize()\n }\n };\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.addEventListener(item, onFullscreenChange)\n })\n\n player.video.addEventListener('webkitbeginfullscreen', function () {\n addClass(root, 'xgplayer-is-fullscreen')\n player.emit('requestFullscreen')\n })\n\n player.video.addEventListener('webkitendfullscreen', function () {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n })\n\n function onWebkitpresentationmodechanged (e) {\n const mode = player.video.webkitPresentationMode\n // 非全屏模式 退出全屏\n if (mode !== PresentationMode.FULLSCREEN) {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n }\n }\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.addEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n function onDestroy () {\n player.off('fullscreenBtnClick', onFullscreenBtnClick);\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.removeEventListener(item, onFullscreenChange)\n })\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.removeEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getFullscreen = function (el) {\n let player = this\n if (el.requestFullscreen) {\n let fullscreenPromise = el.requestFullscreen()\n if (fullscreenPromise) {\n fullscreenPromise.catch(function () {\n player.emit('fullscreen error')\n })\n }\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen()\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen(window.Element.ALLOW_KEYBOARD_INPUT)\n } else if (player.video.webkitSupportsFullscreen) {\n player.video.webkitEnterFullscreen()\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen()\n } else {\n addClass(el, 'xgplayer-is-cssfullscreen')\n }\n }\n\n player.exitFullscreen = function (el) {\n if (document.exitFullscreen) {\n document.exitFullscreen()\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen()\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen()\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen()\n }\n removeClass(el, 'xgplayer-is-cssfullscreen')\n }\n\n player.getRotateFullscreen = function () {\n let player = this\n document.documentElement.style.width = '100%'\n document.documentElement.style.height = '100%'\n if (player.config.fluid) {\n player.root.style['padding-top'] = ''\n player.root.style['max-width'] = 'unset'\n }\n if (player.root && !hasClass(player.root, 'xgplayer-rotate-fullscreen')) {\n addClass(player.root, 'xgplayer-rotate-fullscreen')\n }\n player.emit('getRotateFullscreen')\n }\n\n player.exitRotateFullscreen = function () {\n let player = this\n document.documentElement.style.width = 'unset'\n document.documentElement.style.height = 'unset'\n if (player.config.fluid) {\n player.root.style['width'] = '100%'\n player.root.style['height'] = '0'\n player.root.style['padding-top'] = `${player.config.height * 100 / player.config.width}%`\n player.root.style['max-width'] = '100%'\n }\n if (player.root && hasClass(player.root, 'xgplayer-rotate-fullscreen')) {\n removeClass(player.root, 'xgplayer-rotate-fullscreen')\n }\n player.emit('exitRotateFullscreen')\n }\n}\n\nexport default {\n name: 'fullscreen',\n method: fullscreen\n}\n","import { hasClass } from '../utils/util'\n\nlet play = function () {\n let player = this\n\n function onPlayBtnClick () {\n if (!player.config.allowPlayAfterEnded && player.ended) {\n return\n }\n if(hasClass(player.root, 'xgplayer-nostart')) {\n player.start()\n }\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n player.on('playBtnClick', onPlayBtnClick)\n\n function onDestroy () {\n player.off('playBtnClick', onPlayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'play',\n method: play\n}","import { addClass, removeClass } from '../utils/util'\n\nlet replay = function () {\n let player = this\n let root = player.root\n\n function onReplayBtnClick () {\n removeClass(root, 'xgplayer-is-replay')\n player.replay()\n }\n player.on('replayBtnClick', onReplayBtnClick)\n\n function onEnded () {\n if (!player.config.loop) {\n addClass(root, 'xgplayer-is-replay')\n }\n }\n player.on('ended', onEnded)\n\n function onDestroy () {\n player.off('replayBtnClick', onReplayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'replay',\n method: replay\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/poster.scss'\n\nlet s_poster = function () {\n let player = this\n let root = player.root\n if (!player.config.poster) {\n return\n }\n let poster = createDom('xg-poster', '', {}, 'xgplayer-poster')\n poster.style.backgroundImage = `url(${player.config.poster})`\n root.appendChild(poster)\n}\n\nexport default {\n name: 's_poster',\n method: s_poster\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/placeholder.scss'\n\nlet s_flex = function () {\n let player = this\n let playceholder = createDom('xg-placeholder', '', {}, 'xgplayer-placeholder')\n player.controls.appendChild(playceholder)\n}\n\nexport default {\n name: 's_flex',\n method: s_flex\n}","import { createDom, addClass, removeClass, hasClass, toggleClass, typeOf, event, format, findDom } from '../../utils/util'\r\nimport sniffer from '../../utils/sniffer'\r\nimport '../style/controls/progress.scss'\r\n\r\nconst isRotateFullscreen = (player) => {\r\n return hasClass(player.root, 'xgplayer-rotate-fullscreen')\r\n}\r\n\r\nlet s_progress = function () {\r\n let player = this\r\n let container = createDom('xg-progress', `<xg-outer class=\"xgplayer-progress-outer\">\r\n <xg-cache class=\"xgplayer-progress-cache\"></xg-cache>\r\n <xg-played class=\"xgplayer-progress-played\">\r\n <xg-progress-btn class=\"xgplayer-progress-btn\"></xg-progress-btn>\r\n <xg-point class=\"xgplayer-progress-point xgplayer-tips\"></xg-point>\r\n <xg-thumbnail class=\"xgplayer-progress-thumbnail xgplayer-tips\"></xg-thumbnail>\r\n </xg-played>\r\n </xg-outer>`, {tabindex: 1}, 'xgplayer-progress')\r\n let containerWidth\r\n player.controls.appendChild(container)\r\n let progress = container.querySelector('.xgplayer-progress-played')\r\n let outer = container.querySelector('.xgplayer-progress-outer')\r\n let cache = container.querySelector('.xgplayer-progress-cache')\r\n let point = container.querySelector('.xgplayer-progress-point')\r\n let thumbnail = container.querySelector('.xgplayer-progress-thumbnail')\r\n player.dotArr = {}\r\n function dotEvent (dotItem, text) {\r\n dotItem.addEventListener('mouseenter', function (e) {\r\n if (text) {\r\n addClass(dotItem, 'xgplayer-progress-dot-show')\r\n addClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n dotItem.addEventListener('mouseleave', function (e) {\r\n if (text) {\r\n removeClass(dotItem, 'xgplayer-progress-dot-show')\r\n removeClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n dotItem.addEventListener('touchend', function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n if (text) {\r\n if (!hasClass(dotItem, 'xgplayer-progress-dot-show')) {\r\n Object.keys(player.dotArr).forEach(function (key) {\r\n if (player.dotArr[key]) {\r\n removeClass(player.dotArr[key], 'xgplayer-progress-dot-show')\r\n }\r\n })\r\n }\r\n toggleClass(dotItem, 'xgplayer-progress-dot-show')\r\n toggleClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n }\r\n function onCanplay () {\r\n if (player.config.progressDot && typeOf(player.config.progressDot) === 'Array') {\r\n player.config.progressDot.forEach(item => {\r\n if (item.time >= 0 && item.time <= player.duration) {\r\n let dot = createDom('xg-progress-dot', item.text ? `<span class=\"xgplayer-progress-tip\">${item.text}</span>` : '', {}, 'xgplayer-progress-dot')\r\n dot.style.left = (item.time / player.duration) * 100 + '%'\r\n if (item.duration >= 0) {\r\n dot.style.width = (Math.min(item.duration, player.duration - item.time) / player.duration) * 100 + '%'\r\n }\r\n if(item.style) {\r\n for(let k in item.style) {\r\n dot.style[k] = item.style[k]\r\n }\r\n }\r\n outer.appendChild(dot)\r\n player.dotArr[item.time] = dot\r\n dotEvent(dot, item.text)\r\n }\r\n })\r\n }\r\n }\r\n player.once('canplay', onCanplay)\r\n player.addProgressDot = function (time, text, duration, style) {\r\n if (player.dotArr[time]) {\r\n return\r\n }\r\n if (time >= 0 && time <= player.duration) {\r\n let dot = createDom('xg-progress-dot', text ? `<span class=\"xgplayer-progress-tip\">${text}</span>` : '', {}, 'xgplayer-progress-dot')\r\n dot.style.left = (time / player.duration) * 100 + '%'\r\n if (duration >= 0) {\r\n dot.style.width = (Math.min(duration, player.duration - time) / player.duration) * 100 + '%'\r\n }\r\n if(style) {\r\n for(let k in style) {\r\n dot.style[k] = style[k]\r\n }\r\n }\r\n outer.appendChild(dot)\r\n player.dotArr[time] = dot\r\n dotEvent(dot, text)\r\n }\r\n }\r\n player.removeProgressDot = function (time) {\r\n if (time >= 0 && time <= player.duration && player.dotArr[time]) {\r\n let dot = player.dotArr[time]\r\n dot.parentNode.removeChild(dot)\r\n dot = null\r\n player.dotArr[time] = null\r\n }\r\n }\r\n player.removeAllProgressDot = function () {\r\n Object.keys(player.dotArr).forEach(function (key) {\r\n if (player.dotArr[key]) {\r\n let dot = player.dotArr[key]\r\n dot.parentNode.removeChild(dot)\r\n dot = null\r\n player.dotArr[key] = null\r\n }\r\n })\r\n }\r\n let tnailPicNum = 0\r\n let tnailWidth = 0\r\n let tnailHeight = 0\r\n let tnailCol = 0\r\n let tnailRow = 0\r\n let interval = 0\r\n let tnailUrls = []\r\n let coverPreviewContainer, coverPreviewPoint, coverPreviewOuter\r\n let onLoadedmetadata = function() {\r\n if (player.config.thumbnail) {\r\n if(player.config.thumbnail.isShowCoverPreview && !coverPreviewContainer) {\r\n progress.removeChild(thumbnail)\r\n coverPreviewContainer = createDom('xg-coverpreview', `<xg-outer class=\"xgplayer-coverpreview-outer\">\r\n <xg-thumbnail class=\"xgplayer-coverpreview-thumbnail\"></xg-thumbnail>\r\n <xg-point class=\"xgplayer-coverpreview-point\"></xg-point>\r\n </xg-outer>`, {tabindex: 1}, 'xgplayer-coverpreview')\r\n coverPreviewOuter = coverPreviewContainer.querySelector('.xgplayer-coverpreview-outer')\r\n coverPreviewPoint = coverPreviewContainer.querySelector('.xgplayer-coverpreview-point')\r\n thumbnail = coverPreviewContainer.querySelector('.xgplayer-coverpreview-thumbnail')\r\n player.root.appendChild(coverPreviewContainer)\r\n }\r\n tnailPicNum = player.config.thumbnail.pic_num\r\n tnailWidth = player.config.thumbnail.width\r\n tnailHeight = player.config.thumbnail.height\r\n tnailCol = player.config.thumbnail.col\r\n tnailRow = player.config.thumbnail.row\r\n tnailUrls = player.config.thumbnail.urls\r\n thumbnail.style.width = `${tnailWidth}px`\r\n thumbnail.style.height = `${tnailHeight}px`\r\n };\r\n };\r\n player.on('loadedmetadata', onLoadedmetadata);\r\n\r\n if (typeof player.config.disableSwipeHandler === 'function' && typeof player.config.enableSwipeHandler === 'function') {\r\n player.root.addEventListener('touchmove', e => {\r\n e.preventDefault();\r\n // e.stopPropagation();\r\n if (!player.disableSwipe) {\r\n player.disableSwipe = true\r\n player.config.disableSwipeHandler.call(player);\r\n }\r\n });\r\n player.root.addEventListener('touchstart', e => {\r\n // e.preventDefault();\r\n player.disableSwipe = true\r\n player.config.disableSwipeHandler.call(player);\r\n });\r\n player.root.addEventListener('touchend', e => {\r\n // e.preventDefault();\r\n player.disableSwipe = false\r\n player.config.enableSwipeHandler.call(player);\r\n });\r\n };\r\n let events = ['touchstart', 'mousedown'];\r\n if (sniffer.device === 'mobile') {\r\n // 解决在移动端触发多次seeking问题\r\n events.pop()\r\n }\r\n events.forEach(item => {\r\n container.addEventListener(item, function (e) {\r\n if (player.config.disableProgress) return;\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n if (e._target === point || (!player.config.allowSeekAfterEnded && player.ended)) {\r\n return true\r\n }\r\n\r\n container.focus()\r\n let {left} = progress.getBoundingClientRect()\r\n\r\n const isRotate = isRotateFullscreen(player)\r\n if (isRotate) {\r\n left = progress.getBoundingClientRect().top\r\n containerWidth = container.getBoundingClientRect().height\r\n } else {\r\n containerWidth = container.getBoundingClientRect().width\r\n left = progress.getBoundingClientRect().left\r\n }\r\n\r\n let move = function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n player.isProgressMoving = true\r\n let w = (isRotate ? e.clientY : e.clientX) - left\r\n if (w > containerWidth) {\r\n w = containerWidth\r\n }\r\n let now = w / containerWidth * player.duration\r\n if(now < 0) now = 0\r\n if(player.config.allowSeekPlayed && (Number(now).toFixed(1) > player.maxPlayedTime)) {}\r\n else {\r\n progress.style.width = `${w * 100 / containerWidth}%`\r\n\r\n if (player.videoConfig.mediaType === 'video' && !player.dash && !player.config.closeMoveSeek) {\r\n console.log('trigger touchmove')\r\n player.currentTime = Number(now).toFixed(1)\r\n } else {\r\n let time = findDom(player.controls, '.xgplayer-time')\r\n if (time) {\r\n time.innerHTML = `<span class=\"xgplayer-time-current\">${format(now || 0)}</span><span>${format(player.duration)}</span>`\r\n }\r\n }\r\n }\r\n\r\n if(player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {\r\n coverPreviewPoint.innerHTML = `<span>${format(now)}</span> / ${format(player.duration || 0)}`\r\n\r\n interval = player.duration / tnailPicNum\r\n let index = Math.floor(now / interval)\r\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\r\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\r\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\r\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\r\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\r\n coverPreviewContainer.style.display = 'block'\r\n }\r\n \r\n player.emit('focus')\r\n }\r\n let up = function (e) {\r\n console.log('up event', e)\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n window.removeEventListener('mousemove', move)\r\n window.removeEventListener('touchmove', move, { passive: false })\r\n window.removeEventListener('mouseup', up)\r\n window.removeEventListener('touchend', up)\r\n if(sniffer.browser.indexOf('ie') < 0) {\r\n container.blur()\r\n }\r\n if (!player.isProgressMoving || (player.videoConfig && player.videoConfig.mediaType === 'audio') || player.dash || player.config.closeMoveSeek) {\r\n let w = (isRotate ? e.clientY : e.clientX) - left\r\n if (w > containerWidth) {\r\n w = containerWidth\r\n }\r\n let now = w / containerWidth * player.duration\r\n if(now < 0) now = 0\r\n if(player.config.allowSeekPlayed && (Number(now).toFixed(1) > player.maxPlayedTime)) {}\r\n else {\r\n progress.style.width = `${w * 100 / containerWidth}%`\r\n console.warn('trigger touchup')\r\n player.currentTime = Number(now).toFixed(1)\r\n }\r\n }\r\n if(player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {\r\n coverPreviewContainer.style.display = 'none'\r\n }\r\n player.emit('focus')\r\n player.isProgressMoving = false\r\n }\r\n // if (item === 'touchstart') {\r\n window.addEventListener('touchmove', move, { passive: false })\r\n window.addEventListener('touchend', up)\r\n // } else {\r\n window.addEventListener('mousemove', move)\r\n // console.warn('add envent mouseup')\r\n window.addEventListener('mouseup', up)\r\n // }\r\n return true\r\n })\r\n })\r\n\r\n container.addEventListener('mouseenter', function (e) {\r\n if (!player.config.allowSeekAfterEnded && player.ended) {\r\n return true\r\n }\r\n const isRotate = isRotateFullscreen(player)\r\n let containerLeft = isRotate ? container.getBoundingClientRect().top : container.getBoundingClientRect().left\r\n let containerWidth = isRotate ? container.getBoundingClientRect().height : container.getBoundingClientRect().width\r\n\r\n let compute = function (e) {\r\n let now = ((isRotate ? e.clientY : e.clientX) - containerLeft) / containerWidth * player.duration\r\n now = now < 0 ? 0 : now\r\n point.textContent = format(now)\r\n let pointWidth = point.getBoundingClientRect().width\r\n if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {\r\n interval = player.duration / tnailPicNum\r\n let index = Math.floor(now / interval)\r\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\r\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\r\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\r\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\r\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\r\n let left = (isRotate ? e.clientY : e.clientX) - containerLeft - tnailWidth / 2\r\n left = left > 0 ? left : 0\r\n left = left < containerWidth - tnailWidth ? left : containerWidth - tnailWidth\r\n thumbnail.style.left = `${left}px`\r\n thumbnail.style.top = `${-10 - tnailHeight}px`\r\n thumbnail.style.display = 'block'\r\n point.style.left = `${left + tnailWidth / 2 - pointWidth / 2}px`\r\n } else {\r\n let left = e.clientX - containerLeft - pointWidth / 2\r\n left = left > 0 ? left : 0\r\n left = left > containerWidth - pointWidth ? containerWidth - pointWidth : left\r\n point.style.left = `${left}px`\r\n }\r\n if (hasClass(container, 'xgplayer-progress-dot-active')) {\r\n point.style.display = 'none'\r\n } else {\r\n point.style.display = 'block'\r\n }\r\n }\r\n let move = function (e) {\r\n compute(e)\r\n }\r\n let leave = function (e) {\r\n container.removeEventListener('mousemove', move, false)\r\n container.removeEventListener('mouseleave', leave, false)\r\n compute(e)\r\n point.style.display = 'none'\r\n if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {\r\n thumbnail.style.display = 'none'\r\n }\r\n }\r\n container.addEventListener('mousemove', move, false)\r\n container.addEventListener('mouseleave', leave, false)\r\n compute(e)\r\n }, false)\r\n\r\n // let lastBtnLeft = false\r\n let onTimeupdate = function () {\r\n if(player.maxPlayedTime === undefined) player.maxPlayedTime = 0\r\n if(player.maxPlayedTime < player.currentTime) player.maxPlayedTime = player.currentTime\r\n if (!containerWidth && container) {\r\n containerWidth = container.getBoundingClientRect().width\r\n }\r\n if (!player.isProgressMoving && !player.isSeeking && !player.seeking) {\r\n const precent = player.currentTime / player.duration\r\n const prevPrecent = Number(progress.style.width.replace('%', '') || '0') / Number(container.style.width || '100');\r\n if (Math.abs(precent - prevPrecent) <= 1) {\r\n progress.style.width = `${player.currentTime * 100 / player.duration}%`\r\n }\r\n }\r\n }\r\n player.on('timeupdate', onTimeupdate)\r\n\r\n let onCurrentTimeChange = function (time) {\r\n progress.style.width = `${time * 100 / player.duration}%`\r\n }\r\n player.on('currentTimeChange', onCurrentTimeChange)\r\n\r\n let onSrcChange = function () {\r\n progress.style.width = '0%'\r\n }\r\n player.on('srcChange', onSrcChange)\r\n\r\n let onCacheUpdate = function () {\r\n let buffered = player.buffered\r\n if (buffered && buffered.length > 0) {\r\n let end = buffered.end(buffered.length - 1)\r\n for (let i = 0, len = buffered.length; i < len; i++) {\r\n if (player.currentTime >= buffered.start(i) && player.currentTime <= buffered.end(i)) {\r\n end = buffered.end(i)\r\n for (let j = i + 1; j < buffered.length; j++) {\r\n if (buffered.start(j) - buffered.end(j - 1) >= 2) {\r\n end = buffered.end(j - 1)\r\n break\r\n }\r\n }\r\n break\r\n }\r\n }\r\n cache.style.width = `${end / player.duration * 100}%`\r\n }\r\n }\r\n const cacheUpdateEvents = ['bufferedChange', 'cacheupdate', 'ended', 'timeupdate']\r\n cacheUpdateEvents.forEach(item => {\r\n player.on(item, onCacheUpdate)\r\n })\r\n\r\n function destroyFunc () {\r\n player.removeAllProgressDot()\r\n player.off('canplay', onCanplay)\r\n player.off('timeupdate', onTimeupdate)\r\n player.off('currentTimeChange', onCurrentTimeChange)\r\n player.off('srcChange', onSrcChange)\r\n player.off('loadedmetadata', onLoadedmetadata);\r\n cacheUpdateEvents.forEach(item => {\r\n player.off(item, onCacheUpdate)\r\n })\r\n player.off('destroy', destroyFunc)\r\n }\r\n player.once('destroy', destroyFunc)\r\n}\r\n\r\nexport default {\r\n name: 's_progress',\r\n method: s_progress\r\n}","import { createDom, format } from '../../utils/util'\nimport '../style/controls/time.scss'\n\nlet s_time = function () {\n let player = this\n let container = createDom('xg-time', `<span class=\"xgplayer-time-current\">${player.currentTime || format(0)}</span>\n <span>${player.duration || format(0)}</span>`, {}, 'xgplayer-time')\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(container)\n }\n })\n let onTimeChange = function () {\n // let liveText = player.lang.LIVE\n // if(player.duration === Infinity) {\n // addClass(player.root, 'xgplayer-is-live')\n // if(!findDom(player.root, '.xgplayer-live')) {\n // const live = createDom('xg-live', liveText, {}, 'xgplayer-live')\n // player.controls.appendChild(live)\n // }\n // }\n if (player.videoConfig.mediaType !== 'audio' || !player.isProgressMoving || !player.dash) {\n container.innerHTML = `<span class=\"xgplayer-time-current\">${format(player.currentTime || 0)}</span>` + `<span>${format(player.duration)}</span>`\n }\n }\n player.on('durationchange', onTimeChange)\n player.on('timeupdate', onTimeChange)\n\n function onDestroy () {\n player.off('durationchange', onTimeChange)\n player.off('timeupdate', onTimeChange)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_time',\n method: s_time\n}","import { createDom, createImgBtn } from '../../utils/util'\nimport PlayIcon from '../assets/play.svg'\nimport PauseIcon from '../assets/pause.svg'\nimport '../style/controls/play.scss'\n\nlet s_play = function () {\n let player = this\n let playBtn = player.config.playBtn ? player.config.playBtn : {}\n let btn\n if (playBtn.type === 'img') {\n btn = createImgBtn('play', playBtn.url.play, playBtn.width, playBtn.height)\n } else {\n btn = createDom('xg-play', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-play\">${PlayIcon}</div>\n <div class=\"xgplayer-icon-pause\">${PauseIcon}</div>\n </xg-icon>`, {}, 'xgplayer-play')\n }\n\n let tipsText = {}\n tipsText.play = player.lang.PLAY_TIPS\n tipsText.pause = player.lang.PAUSE_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-play\">${tipsText.play}</span>\n <span class=\"xgplayer-tip-pause\">${tipsText.pause}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(btn)\n }\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('playBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_play',\n method: s_play\n}","import { createDom, createImgBtn } from '../../utils/util'\nimport RequestFullIcon from '../assets/requestFull.svg'\nimport ExitFullIcon from '../assets/exitFull.svg'\nimport '../style/controls/fullscreen.scss'\n\nlet s_fullscreen = function () {\n let player = this\n let fullscreenBtn = player.config.fullscreenBtn ? player.config.fullscreenBtn : {}\n let btn\n if (fullscreenBtn.type === 'img') {\n btn = createImgBtn('fullscreen', fullscreenBtn.url.request, fullscreenBtn.width, fullscreenBtn.height)\n } else {\n btn = createDom('xg-fullscreen', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-requestfull\">${RequestFullIcon}</div>\n <div class=\"xgplayer-icon-exitfull\">${ExitFullIcon}</div>\n </xg-icon>`, {}, 'xgplayer-fullscreen')\n }\n\n let tipsText = {}\n tipsText.requestfull = player.lang.FULLSCREEN_TIPS\n tipsText.exitfull = player.lang.EXITFULLSCREEN_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-requestfull\">${tipsText.requestfull}</span>\n <span class=\"xgplayer-tip-exitfull\">${tipsText.exitfull}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(btn)\n }\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('fullscreenBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_fullscreen',\n method: s_fullscreen\n}","import { createDom } from '../../utils/util'\nimport Loading from '../assets/loading.svg'\nimport '../style/controls/loading.scss'\n\nlet s_loading = function () {\n let player = this\n let root = player.root\n let container = createDom('xg-loading', `${Loading}`, {}, 'xgplayer-loading')\n player.once('ready', () => {\n root.appendChild(container)\n })\n}\n\nexport default {\n name: 's_loading',\n method: s_loading\n}","import { createDom } from '../../utils/util'\nimport ReplayIcon from '../assets/replay.svg'\nimport '../style/controls/replay.scss'\n\nlet s_replay = function () {\n let player = this\n let root = player.root\n\n let replayText = player.lang.REPLAY\n let btn = createDom('xg-replay', `${ReplayIcon}\n <xg-replay-txt class=\"xgplayer-replay-txt\">${replayText}</xg-replay-txt>\n `, {}, 'xgplayer-replay')\n player.once('ready', () => {\n root.appendChild(btn)\n })\n\n function onEnded () {\n let path = btn.querySelector('path')\n if(path) {\n let transform = window.getComputedStyle(path).getPropertyValue('transform')\n if(typeof transform === 'string' && transform.indexOf('none') > -1) {\n return\n } else {\n path.setAttribute('transform', transform)\n }\n }\n }\n player.on('ended', onEnded)\n\n function onBtnClick (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n btn.addEventListener('click', onBtnClick)\n\n let svg = btn.querySelector('svg');\n\n ['click', 'touchend'].forEach(item => {\n svg.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('replayBtnClick')\n })\n })\n\n function destroyFunc () {\n player.off('ended', onEnded)\n player.off('destroy', destroyFunc)\n }\n player.once('destroy', destroyFunc)\n}\n\nexport default {\n name: 's_replay',\n method: s_replay\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./play.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-play,.xgplayer-skin-default .xgplayer-play-img{width:40px;position:relative;-webkit-order:0;-moz-box-ordinal-group:1;order:0;display:block;cursor:pointer;margin-left:3px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-play .xgplayer-icon{margin-top:3px;width:32px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-play .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}.xgplayer-skin-default .xgplayer-play-img:hover,.xgplayer-skin-default .xgplayer-play:hover{opacity:.85}.xgplayer-skin-default .xgplayer-play-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-play:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-poster{display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:50%}.xgplayer-skin-default.xgplayer-nostart .xgplayer-poster{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./placeholder.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./placeholder.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./placeholder.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-placeholder{-webkit-flex:1;-moz-box-flex:1;flex:1;-webkit-order:3;-moz-box-ordinal-group:4;order:3;display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./fullscreen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-fullscreen,.xgplayer-skin-default .xgplayer-fullscreen-img{position:relative;-webkit-order:13;-moz-box-ordinal-group:14;order:13;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img:hover,.xgplayer-skin-default .xgplayer-fullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-fullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./loading.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-loading{display:none;width:100px;height:100px;overflow:hidden;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);position:absolute;left:50%;top:50%;margin:-50px auto auto -50px}.xgplayer-skin-default .xgplayer-loading svg{border-radius:50%;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-animation:loadingRotate 1s linear infinite;animation:loadingRotate 1s linear infinite}.xgplayer-skin-default .xgplayer-loading svg path{stroke:#ddd;stroke-dasharray:236;-webkit-animation:loadingDashOffset 2s linear infinite;animation:loadingDashOffset 2s linear infinite;animation-direction:alternate-reverse;fill:none;stroke-width:12px}.xgplayer-skin-default.xgplayer-nostart .xgplayer-loading{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-loading{display:none!important}.xgplayer-skin-default.xgplayer-isloading .xgplayer-loading{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./progress.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-progress{display:block;position:absolute;height:20px;line-height:20px;left:12px;right:12px;outline:none;top:-15px;z-index:35}.xgplayer-skin-default .xgplayer-progress-outer{background:hsla(0,0%,100%,.3);display:block;height:3px;line-height:3px;margin-top:8.5px;width:100%;position:relative;cursor:pointer}.xgplayer-skin-default .xgplayer-progress-cache,.xgplayer-skin-default .xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-skin-default .xgplayer-progress-cache{width:0;background:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#fa1f41,#e31106);border-radius:0 1.5px 1.5px 0}.xgplayer-skin-default .xgplayer-progress-btn{display:none;position:absolute;left:0;top:-5px;width:13px;height:13px;border-radius:30px;background:#fff;box-shadow:0 0 2px 0 rgba(0,0,0,.26);left:100%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);z-index:36}.xgplayer-skin-default .xgplayer-progress-point{position:absolute}.xgplayer-skin-default .xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-skin-default .xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer-skin-default .xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;bottom:200%;right:50%;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);height:auto;line-height:30px;width:auto;background:rgba(0,0,0,.3);border-radius:6px;border:1px solid rgba(0,0,0,.8);cursor:default;white-space:nowrap;display:none}.xgplayer-skin-default .xgplayer-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-skin-default .xgplayer-progress-thumbnail{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box}.xgplayer-skin-default .xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-skin-default .xgplayer-coverpreview{position:absolute;width:100%;height:100%;top:0;left:0;display:none}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer{position:absolute;display:block;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-thumbnail{display:block}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point{display:block;text-align:center;font-family:PingFangSC-Regular;font-size:11px;color:#ccc;padding:2px 4px}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point span{color:#fff}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-dot{height:6px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-btn{display:block;top:-3px}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-volume-active .xgplayer-progress{z-index:15}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress-btn{display:block!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer{height:3px!important;margin-top:8.5px!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-btn{display:block!important;top:-5px!important}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-time{-webkit-order:2;-moz-box-ordinal-group:3;order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;height:40px;text-align:center;display:inline-block;margin:auto 8px}.xgplayer-skin-default .xgplayer-time span{color:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current{color:#fff}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current:after{content:\\\"/\\\";display:inline-block;padding:0 3px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./replay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:105;display:none;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center;background:rgba(0,0,0,.54);-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.xgplayer-skin-default .xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-skin-default .xgplayer-replay svg path{-webkit-transform:translate(20px,21px);-ms-transform:translate(20px,21px);transform:translate(20px,21px);fill:#ddd}.xgplayer-skin-default .xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-skin-default .xgplayer-replay svg:hover path{fill:#fff}.xgplayer-skin-default .xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-replay{display:-webkit-flex;display:-moz-box;display:flex}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./textTrack.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage\n// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime\n// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs\n// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling.\n// v4 adds AMD/UMD, commonJS, and plain browser support\n// v4.1 adds url download capability via solo URL argument (same domain/CORS only)\n// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors\n// https://github.com/rndme/download\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof exports === 'object') {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.download = factory();\n }\n}(this, function () {\n\n\treturn function download(data, strFileName, strMimeType) {\n\n\t\tvar self = window, // this script is only for browsers anyway...\n\t\t\tdefaultMime = \"application/octet-stream\", // this default mime also triggers iframe downloads\n\t\t\tmimeType = strMimeType || defaultMime,\n\t\t\tpayload = data,\n\t\t\turl = !strFileName && !strMimeType && payload,\n\t\t\tanchor = document.createElement(\"a\"),\n\t\t\ttoString = function(a){return String(a);},\n\t\t\tmyBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString),\n\t\t\tfileName = strFileName || \"download\",\n\t\t\tblob,\n\t\t\treader;\n\t\t\tmyBlob= myBlob.call ? myBlob.bind(self) : Blob ;\n\t \n\t\tif(String(this)===\"true\"){ //reverse arguments, allowing download.bind(true, \"text/xml\", \"export.xml\") to act as a callback\n\t\t\tpayload=[payload, mimeType];\n\t\t\tmimeType=payload[0];\n\t\t\tpayload=payload[1];\n\t\t}\n\n\n\t\tif(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument\n\t\t\tfileName = url.split(\"/\").pop().split(\"?\")[0];\n\t\t\tanchor.href = url; // assign href prop to temp anchor\n\t\t \tif(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path:\n \t\tvar ajax=new XMLHttpRequest();\n \t\tajax.open( \"GET\", url, true);\n \t\tajax.responseType = 'blob';\n \t\tajax.onload= function(e){ \n\t\t\t\t download(e.target.response, fileName, defaultMime);\n\t\t\t\t};\n \t\tsetTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return:\n\t\t\t return ajax;\n\t\t\t} // end if valid url?\n\t\t} // end if url?\n\n\n\t\t//go ahead and download dataURLs right away\n\t\tif(/^data:([\\w+-]+\\/[\\w+.-]+)?[,;]/.test(payload)){\n\t\t\n\t\t\tif(payload.length > (1024*1024*1.999) && myBlob !== toString ){\n\t\t\t\tpayload=dataUrlToBlob(payload);\n\t\t\t\tmimeType=payload.type || defaultMime;\n\t\t\t}else{\t\t\t\n\t\t\t\treturn navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs:\n\t\t\t\t\tnavigator.msSaveBlob(dataUrlToBlob(payload), fileName) :\n\t\t\t\t\tsaver(payload) ; // everyone else can save dataURLs un-processed\n\t\t\t}\n\t\t\t\n\t\t}else{//not data url, is it a string with special needs?\n\t\t\tif(/([\\x80-\\xff])/.test(payload)){\t\t\t \n\t\t\t\tvar i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length;\n\t\t\t\tfor(i;i<mx;++i) tempUiArr[i]= payload.charCodeAt(i);\n\t\t\t \tpayload=new myBlob([tempUiArr], {type: mimeType});\n\t\t\t}\t\t \n\t\t}\n\t\tblob = payload instanceof myBlob ?\n\t\t\tpayload :\n\t\t\tnew myBlob([payload], {type: mimeType}) ;\n\n\n\t\tfunction dataUrlToBlob(strUrl) {\n\t\t\tvar parts= strUrl.split(/[:;,]/),\n\t\t\ttype= parts[1],\n\t\t\tdecoder= parts[2] == \"base64\" ? atob : decodeURIComponent,\n\t\t\tbinData= decoder( parts.pop() ),\n\t\t\tmx= binData.length,\n\t\t\ti= 0,\n\t\t\tuiArr= new Uint8Array(mx);\n\n\t\t\tfor(i;i<mx;++i) uiArr[i]= binData.charCodeAt(i);\n\n\t\t\treturn new myBlob([uiArr], {type: type});\n\t\t }\n\n\t\tfunction saver(url, winMode){\n\n\t\t\tif ('download' in anchor) { //html5 A[download]\n\t\t\t\tanchor.href = url;\n\t\t\t\tanchor.setAttribute(\"download\", fileName);\n\t\t\t\tanchor.className = \"download-js-link\";\n\t\t\t\tanchor.innerHTML = \"downloading...\";\n\t\t\t\tanchor.style.display = \"none\";\n\t\t\t\tdocument.body.appendChild(anchor);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tanchor.click();\n\t\t\t\t\tdocument.body.removeChild(anchor);\n\t\t\t\t\tif(winMode===true){setTimeout(function(){ self.URL.revokeObjectURL(anchor.href);}, 250 );}\n\t\t\t\t}, 66);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// handle non-a[download] safari as best we can:\n\t\t\tif(/(Version)\\/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari\\//.test(navigator.userAgent)) {\n\t\t\t\tif(/^data:/.test(url))\turl=\"data:\"+url.replace(/^data:([\\w\\/\\-\\+]+)/, defaultMime);\n\t\t\t\tif(!window.open(url)){ // popup blocked, offer direct download:\n\t\t\t\t\tif(confirm(\"Displaying New Document\\n\\nUse Save As... to download, then click back to return to this page.\")){ location.href=url; }\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t//do iframe dataURL download (old ch+FF):\n\t\t\tvar f = document.createElement(\"iframe\");\n\t\t\tdocument.body.appendChild(f);\n\n\t\t\tif(!winMode && /^data:/.test(url)){ // force a mime that will download:\n\t\t\t\turl=\"data:\"+url.replace(/^data:([\\w\\/\\-\\+]+)/, defaultMime);\n\t\t\t}\n\t\t\tf.src=url;\n\t\t\tsetTimeout(function(){ document.body.removeChild(f); }, 333);\n\n\t\t}//end saver\n\n\n\n\n\t\tif (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\n\t\t\treturn navigator.msSaveBlob(blob, fileName);\n\t\t}\n\n\t\tif(self.URL){ // simple fast and modern way using Blob and URL:\n\t\t\tsaver(self.URL.createObjectURL(blob), true);\n\t\t}else{\n\t\t\t// handle non-Blob()+non-URL browsers:\n\t\t\tif(typeof blob === \"string\" || blob.constructor===toString ){\n\t\t\t\ttry{\n\t\t\t\t\treturn saver( \"data:\" + mimeType + \";base64,\" + self.btoa(blob) );\n\t\t\t\t}catch(y){\n\t\t\t\t\treturn saver( \"data:\" + mimeType + \",\" + encodeURIComponent(blob) );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Blob but not URL support:\n\t\t\treader=new FileReader();\n\t\t\treader.onload=function(e){\n\t\t\t\tsaver(this.result);\n\t\t\t};\n\t\t\treader.readAsDataURL(blob);\n\t\t}\n\t\treturn true;\n\t}; /* end download() */\n}));\n","/*!\n * Draggabilly v2.4.1\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","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/*! Built @Thu, 23 Feb 2023 07:24:27 GMT */\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}),t.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},t.hasClass=i,t.addClass=o,t.removeClass=r,t.toggleClass=function(e,t){t.split(/\\s+/g).forEach((function(t){i(e,t)?r(e,t):o(e,t)}))},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},t.deepCopy=function e(t,n){if(\"Object\"===a(n)&&\"Object\"===a(t))return Object.keys(n).forEach((function(i){\"Object\"!==a(n[i])||n[i]instanceof Node?\"Array\"===a(n[i])?t[i]=\"Array\"===a(t[i])?t[i].concat(n[i]):n[i]:t[i]=n[i]:t[i]?e(t[i],n[i]):t[i]=n[i]})),t},t.typeOf=a,t.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\"\"},t.attachEventListener=function(e,t,n,i){if(i)e.on(t,n),function(e,t,n,i){e.once(i,(function o(){e.off(t,n),e.off(i,o)}))}(e,t,n,i);else{e.on(t,(function i(o){n(o),e.off(t,i)}))}},t.styleUtil=function(e,t,n){var i=e.style;try{i[t]=n}catch(e){i.setProperty(t,n)}},t.styleCSSText=function(e,t){var n=e.style;try{n.cssText=t}catch(e){}},t.isNumber=function(e){return\"number\"==typeof e&&!Number.isNaN(e)},t.throttle=function(e,t){var n=this,i=0;return function(){for(var o=arguments.length,r=Array(o),a=0;a<o;a++)r[a]=arguments[a];clearTimeout(i),i=setTimeout((function(){return e.apply(n,r)}),t)}};t.hasOwnProperty=Object.prototype.hasOwnProperty;function i(e,t){return e.classList?Array.prototype.some.call(e.classList,(function(e){return e===t})):!!e.className.match(new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\"))}function o(e,t){e.classList?t.replace(/(^\\s+|\\s+$)/g,\"\").split(/\\s+/g).forEach((function(t){t&&e.classList.add(t)})):i(e,t)||(e.className+=\" \"+t)}function r(e,t){e.classList?t.split(/\\s+/g).forEach((function(t){e.classList.remove(t)})):i(e,t)&&t.split(/\\s+/g).forEach((function(t){var n=new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\");e.className=e.className.replace(n,\" \")}))}function a(e){return Object.prototype.toString.call(e).match(/([^\\s.*]+)(?=]$)/g)[0]}},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(18)();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){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=n(5),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}),t.DanmuJs=void 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=h(n(6)),r=n(25),a=h(n(1)),s=h(n(27)),l=h(n(32)),u=n(33),c=n(0);function h(e){return e&&e.__esModule?e:{default:e}}function f(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=t.DanmuJs=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=f(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)),i=n;i.setLogger(\"danmu\"),i.logger&&i.logger.info(\"danmu.js version: \"+r.version);var a=i.config={overlap:!1,area:{start:0,end:1,lines:void 0},live:!1,comments:[],direction:\"r2l\",needResizeObserver:!1,dropStaleComments:!1,channelSize:void 0,maxCommentsLength:void 0,bulletOffset:void 0,interval:2e3,highScorePriority:!0};if((0,c.deepCopy)(a,e),(0,o.default)(i),i.hideArr=[],i.domObj=new l.default,i.freezeId=null,a.comments.forEach((function(e){e.duration=e.duration?e.duration:5e3,e.mode||(e.mode=\"scroll\")})),i.container=a.container&&1===a.container.nodeType?a.container:null,!i.container)return i.emit(\"error\",\"container id can't be empty\"),!1,f(n,!1);if(a.containerStyle){var u=a.containerStyle;Object.keys(u).forEach((function(e){i.container.style[e]=u[e]}))}return i.live=a.live,i.player=a.player,i.direction=a.direction,(0,c.addClass)(i.container,\"danmu\"),i.bulletBtn=new s.default(i),i.main=i.bulletBtn.main,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,u.addObserver)(this.container,(function(){e.logger&&e.logger.info(\"needResizeObserver\"),e.resize()}))}},{key:\"start\",value:function(){this.logger&&this.logger.info(\"start\"),this.main.start()}},{key:\"pause\",value:function(){this.logger&&this.logger.info(\"pause\"),this.main.pause()}},{key:\"play\",value:function(){this.logger&&this.logger.info(\"play\"),this.main.play()}},{key:\"stop\",value:function(){this.logger&&this.logger.info(\"stop\"),this.main.stop()}},{key:\"clear\",value:function(){this.logger&&this.logger.info(\"clear\"),this.main.clear()}},{key:\"destroy\",value:function(){for(var e in(0,u.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]\"));var t=this.main;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?(t.data.unshift(e),e.realTime&&(t.readData(),t.dataHandle())):t.data.push(e),t.keepPoolWatermark())}},{key:\"setCommentID\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setCommentID: oldID \"+e+\" newID \"+t),e&&t&&(this.main.data.some((function(n){return n.id===e&&(n.id=t,!0)})),this.main.queue.some((function(i){return i.id===e&&(i.id=t,i.pauseMove(),\"paused\"!==n.main.status&&i.startMove(),!0)})))}},{key:\"setCommentDuration\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setCommentDuration: id \"+e+\" duration \"+t),e&&t&&(t=t||5e3,this.main.data.some((function(n){return n.id===e&&(n.duration=t,!0)})),this.main.queue.some((function(i){return i.id===e&&(i.duration=t,i.pauseMove(),\"paused\"!==n.main.status&&i.startMove(),!0)})))}},{key:\"setCommentLike\",value:function(e,t){this.logger&&this.logger.info(\"setCommentLike: id \"+e+\" like \"+t),e&&t&&(this.main.data.some((function(n){return n.id===e&&(n.like=t,!0)})),this.main.queue.some((function(n){return n.id===e&&(n.pauseMove(),n.setLikeDom(t.el,t.style),\"paused\"!==n.danmu.main.status&&n.startMove(),!0)})))}},{key:\"restartComment\",value:function(e){if(this.logger&&this.logger.info(\"restartComment: id \"+e),e){var t=this.main;if(this._releaseCtrl(e),\"closed\"===t.status)return;t.queue.some((function(n){return n.id===e&&(\"paused\"!==t.status?n.startMove(!0):n.status=\"paused\",!0)}))}}},{key:\"_releaseCtrl\",value:function(e){this.freezeId&&e===this.freezeId&&(this.mouseControl=!1,this.freezeId=null)}},{key:\"_freezeCtrl\",value:function(e){this.mouseControl=!0,this.freezeId=e}},{key:\"freezeComment\",value:function(e){if(this.logger&&this.logger.info(\"freezeComment: id \"+e),e){this._freezeCtrl(e),this.main.queue.some((function(t){return t.id===e&&(t.status=\"forcedPause\",t.pauseMove(),t.el&&t.el.style&&(0,c.styleUtil)(t.el,\"zIndex\",10),!0)}))}}},{key:\"removeComment\",value:function(e){if(this.logger&&this.logger.info(\"removeComment: id \"+e),e){var t=this;t._releaseCtrl(e),t.main.queue.some((function(t){return t.id===e&&(t.remove(),!0)})),t.main.data=t.main.data.filter((function(n){var i=n.id!==e;return i||t.main.dataElHandle([n]),i}))}}},{key:\"updateComments\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.logger&&this.logger.info(\"updateComments: \"+e.length+\", isClear \"+t);var n=this.main;\"boolean\"==typeof t&&t&&(n.dataElHandle(n.data),n.data=[]),n.data=n.data.concat(e),n.sortData(),n.keepPoolWatermark()}},{key:\"setAllDuration\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\",t=this,n=arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];this.logger&&this.logger.info(\"setAllDuration: mode \"+e+\" duration \"+n+\" force \"+i),n&&(n=n||5e3,i&&(this.main.forceDuration=n),this.main.data.forEach((function(t){e===t.mode&&(t.duration=n)})),this.main.queue.forEach((function(i){e===i.mode&&(i.duration=n,i.pauseMove(),\"paused\"!==t.main.status&&i.startMove())})))}},{key:\"setPlayRate\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\",n=arguments[1];this.logger&&this.logger.info(\"setPlayRate: \"+n),(0,c.isNumber)(n)&&n>0&&(this.main.playRate=n,this.main.queue.forEach((function(n){t===n.mode&&(n.pauseMove(),\"paused\"!==e.main.status&&n.startMove())})))}},{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,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{reflow:!0};this.logger&&this.logger.info(\"setFontSize: size \"+e+\" channelSize \"+t),this.fontSize=e+\"px\",e&&(this.main.data.forEach((function(e){e.style&&(e.style.fontSize=n.fontSize)})),this.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,i.reflow&&this.main.channel.resizeSync())}},{key:\"setArea\",value:function(e){this.logger&&this.logger.info(\"setArea: area \"+e),this.config.area=e,!1!==e.reflow&&this.main.channel.resizeSync()}},{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.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\")}},{key:\"status\",get:function(){return this.main.status}},{key:\"state\",get:function(){var e=this.main;return{status:e.status,comments:e.data,bullets:e.queue,displayArea:e.channel.getRealOccupyArea()}}},{key:\"containerPos\",get:function(){return this.main.channel.containerPos}}]),t}(a.default);t.default=d},function(e,t,n){\"use strict\";var i,o,r,a,s,l,u,c=n(7),h=n(24),f=Function.prototype.apply,d=Function.prototype.call,p=Object.create,g=Object.defineProperty,m=Object.defineProperties,v=Object.prototype.hasOwnProperty,y={configurable:!0,enumerable:!1,writable:!0};o=function(e,t){var n,o;return h(t),o=this,i.call(this,e,n=function(){r.call(o,e,n),f.call(t,this,arguments)}),n.__eeOnceListener__=t,this},s={on:i=function(e,t){var n;return h(t),v.call(this,\"__ee__\")?n=this.__ee__:(n=y.value=p(null),g(this,\"__ee__\",y),y.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(h(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)f.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];f.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?p(u):m(Object(e),l)},t.methods=s},function(e,t,n){\"use strict\";var i=n(3),o=n(8),r=n(12),a=n(20),s=n(21);(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,h;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),h={get:t,set:n,configurable:l,enumerable:u},c?r(a(c),h):h}},function(e,t,n){\"use strict\";var i=n(9),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(10);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(11);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(13)()?Object.assign:n(14)},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(15),o=n(19),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(16)()?Object.keys:n(17)},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(22)()?String.prototype.contains:n(23)},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){e.exports=JSON.parse('{\"version\":\"1.1.8\"}')},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(28)),a=n(0);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 r.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=(0,a.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)a.hasOwnProperty.call(this,e)&&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=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));return n.setLogger(\"main\"),n.danmu=e,n.container=e.container,n.channel=new a.default(e),n.data=[].concat(e.config.comments),n.playedData=[],n.queue=[],n.timer=null,n.playRate=1,n.retryStatus=\"normal\",n.interval=e.config.interval,n._status=\"idle\",(0,s.attachEventListener)(e,\"bullet_remove\",n.updateQueue.bind(n),\"destroy\"),(0,s.attachEventListener)(e,\"changeDirection\",(function(e){n.danmu.direction=e}),\"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:\"_cancelDataHandleTimer\",value:function(){this.handleId&&(clearTimeout(this.handleId),this.handleId=null),this.handleTimer&&(clearTimeout(this.handleTimer),this.handleTimer=null)}},{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),this._cancelDataHandleTimer(),this.channel.destroy(),this.dataElHandle(this.data),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){return t.id===e.bullet.id&&(t.attached_=!1,!0)}))}},{key:\"init\",value:function(){var e=this;e.retryStatus=\"normal\",e.sortData(),function t(){\"closed\"!==e._status||\"stop\"!==e.retryStatus?(\"playing\"===e._status&&(e.readData(),e.dataHandle()),\"stop\"===e.retryStatus&&\"paused\"!==e._status||(e.handleTimer=setTimeout((function(){e.handleId=requestAnimationFrame((function(){t()}))}),250))):e._cancelDataHandleTimer()}()}},{key:\"start\",value:function(){this.logger&&this.logger.info(\"start\");\"playing\"!==this._status&&(this._status=\"playing\",this.queue=[],this.container.innerHTML=\"\",this.channel.reset(),this.init())}},{key:\"stop\",value:function(){this.logger&&this.logger.info(\"stop\");\"closed\"!==this._status&&(this._status=\"closed\",this.retryStatus=\"stop\",this.queue=[],this.container.innerHTML=\"\",this.channel.reset())}},{key:\"clear\",value:function(){this.logger&&this.logger.info(\"clear\"),this.channel.reset(),this.dataElHandle(this.data),this.data=[],this.queue=[],this.container.innerHTML=\"\"}},{key:\"play\",value:function(){var e=this;if(\"closed\"!==this._status){this.logger&&this.logger.info(\"play\"),this._status=\"playing\";var t=this.channel.channels;t&&t.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(n){e.queue.forEach((function(e){e.startMove(),e.resized=!0}));for(var i=0;i<t.length;i++)t[i].queue[n].forEach((function(e){e.resized=!1}))}))}else this.logger&&this.logger.info(\"play ignored\")}},{key:\"pause\",value:function(){if(\"closed\"!==this._status){this.logger&&this.logger.info(\"pause\"),this._status=\"paused\";var e=this.channel.channels;e&&e.length>0&&this.queue.forEach((function(e){e.pauseMove()}))}else this.logger&&this.logger.info(\"pause ignored\")}},{key:\"dataHandle\",value:function(){\"paused\"!==this._status&&\"closed\"!==this._status&&this.queue.length&&this.queue.forEach((function(e){\"waiting\"===e.status&&e.startMove()}))}},{key:\"readData\",value:function(){var e=this.danmu,t=this.interval,n=this.channel,i=e.player,o=void 0,a=void 0;if(e.isReady){if(i){var l=i.currentTime?Math.floor(1e3*i.currentTime):0;a=this.data.filter((function(n){return!n.start&&e.hideArr.indexOf(n.mode)<0&&(!n.color||e.hideArr.indexOf(\"color\")<0)&&(n.start=l),!n.attached_&&e.hideArr.indexOf(n.mode)<0&&(!n.color||e.hideArr.indexOf(\"color\")<0)&&n.start-t<=l&&l<=n.start+t})),e.config.highScorePriority&&a.sort((function(e,t){return t.prior&&!e.prior||(t.score||-1)-(e.score||-1)})),e.live&&(this.dataElHandle(this.data),this.data=[])}else 0===(a=this.data.splice(0,1)).length&&(a=this.playedData.splice(0,1));if(a.length>0){n.updatePos();var u=2;e:for(var c,h=0;h<a.length;h++)if(c=a[h],this.forceDuration&&this.forceDuration!==c.duration&&(c.duration=this.forceDuration),(o=new r.default(e,c))&&!o.bulletCreateFail)if(o.attach(),c.attached_=!0,n.addBullet(o).result)this.queue.push(o),o.topInit(),u=2;else{for(var f in o.detach(),o)s.hasOwnProperty.call(o,f)&&delete o[f];if(o=null,c.attached_=!1,c.noDiscard&&(c.prior?this.data.unshift(c):this.data.push(c)),0===u)break e;u--}else{if(0===u)break e;u--}}}}},{key:\"sortData\",value:function(){this.data.sort((function(e,t){return(e.start||-1)-(t.start||-1)}))}},{key:\"keepPoolWatermark\",value:function(){var e=this.danmu,t=e.config,n=e.player,i=this.data,o=[],r=0;if(\"number\"==typeof t.maxCommentsLength&&i.length>t.maxCommentsLength){r=i.length-t.maxCommentsLength;for(var a,s=0;s<r;s++)(a=i[s]).prior&&!a.attached_&&o.push(i[s])}else if(t.dropStaleComments&&n&&n.currentTime){var l=Math.floor(1e3*n.currentTime)-t.interval;if(l>0)for(var u,c=0;c<i.length;c++)if((u=i[c]).prior&&!u.attached_&&o.push(i[c]),u.start>l){r=c;break}}r>0&&(this.dataElHandle(i,0,r),i.splice(0,r),this.data=o.concat(i))}},{key:\"dataElHandle\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments[2];if(Number.isNaN(n))n=e.length;else if(n>e.length)throw\"dataElHandle invalid range: \"+t+\"-\"+n;for(var i=t;i<n;i++){var o=e[i];if(o&&\"function\"==typeof o.onElDestroy)try{o.onElDestroy(o),o.onElDestroy=null}catch(e){console.error(\"danmu onElDestroy fail:\",e)}}}},{key:\"status\",get:function(){return this._status}}]),t}(o.default);t.default=u,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Bullet=void 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(1),a=(i=r)&&i.__esModule?i:{default:i},s=n(0);function l(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 u=t.Bullet=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=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)),o=i,r=void 0,a=\"\",u=n.style||{};if(i.setLogger(\"bullet\"),i.danmu=e,i.options=n,i.duration=n.duration,i.id=n.id,i.container=e.container,i.start=n.start,i.prior=n.prior,i.realTime=n.realTime,i.color=n.color,i.bookChannelId=n.bookChannelId,i.direction=e.direction,i.reuseDOM=!0,i.domObj=e.domObj,n.el&&1===n.el.nodeType){if(n.el.parentNode)return l(i,{bulletCreateFail:!0});if(e.config.disableCopyDOM||n.disableCopyDOM)i.reuseDOM=!1,r=n.el;else{var c=(0,s.copyDom)(n.el);n.eventListeners&&n.eventListeners.length>0&&n.eventListeners.forEach((function(e){c.addEventListener(e.event,e.listener,e.useCapture||!1)})),(r=i.domObj.use()).childNodes.length>0&&(r.innerHTML=\"\"),r.textContent&&(r.textContent=\"\"),r.appendChild(c)}}else(r=i.domObj.use()).textContent=n.txt;i.onChangeDirection=function(e){o.direction=e},i.danmu.on(\"changeDirection\",i.onChangeDirection);var h=void 0;if((0,s.isNumber)(e.config.bulletOffset)&&e.config.bulletOffset>=0)h=e.config.bulletOffset;else{var f=e.containerPos;h=f.width/10>100?100:f.width/10}var d=n.realTime?0:Math.floor(Math.random()*h),p=i.updateOffset(d,!0);return u.left=p,Object.keys(u).forEach((function(e){a+=e+\":\"+u[e]+\";\"})),(0,s.styleCSSText)(r,a),\"top\"===n.mode||\"bottom\"===n.mode?i.mode=n.mode:i.mode=\"scroll\",i.el=r,n.like&&n.like.el&&i.setLikeDom(n.like.el,n.like.style),i.status=\"waiting\",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),o(t,[{key:\"updateOffset\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.random=e;var n=this.danmu.containerPos.width+e+\"px\";return t||(0,s.styleUtil)(this.el,\"left\",this.danmu.containerPos.width+e+\"px\"),n}},{key:\"attach\",value:function(){var e=this.el;this.container.contains(e)||this.container.appendChild(e),this.elPos=e.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&&(this.duration=(this.danmu.containerPos.width+this.random+this.width)/this.moveV*1e3),this.danmu.config&&(this.danmu.config.mouseControl&&(this.mouseoverFunWrapper=this.mouseoverFun.bind(this),e.addEventListener(\"mouseover\",this.mouseoverFunWrapper,!1)),this.danmu.config.mouseEnterControl&&(this.mouseEnterFunWrapper=this.mouseoverFun.bind(this),e.addEventListener(\"mouseenter\",this.mouseEnterFunWrapper,!1))),this._onTransitionEnd=this._onTransitionEnd.bind(this),e.addEventListener(\"transitionend\",this._onTransitionEnd,!1)}},{key:\"detach\",value:function(){var e=this.el;if(e){var t=this.danmu.config;t&&(t.mouseControl&&e.removeEventListener(\"mouseover\",this.mouseoverFunWrapper,!1),t.mouseEnterControl&&e.removeEventListener(\"mouseenter\",this.mouseEnterFunWrapper,!1)),e.removeEventListener(\"transitionend\",this._onTransitionEnd,!1),this.reuseDOM?this.domObj.unused(e):e.parentNode&&e.parentNode.removeChild(e),this.el=null}this.elPos=void 0,this.danmu.off(\"changeDirection\",this.onChangeDirection)}},{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:\"_onTransitionEnd\",value:function(){this.status=\"end\",this.remove(!1)}},{key:\"topInit\",value:function(){this.logger&&this.logger.info(\"topInit #\"+(this.options.txt||\"[DOM Element]\")+\"#\"),\"b2t\"===this.direction?((0,s.styleUtil)(this.el,\"transformOrigin\",\"left top\"),(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+this.danmu.containerPos.height+\"px) translateZ(0px) rotate(90deg)\"),(0,s.styleUtil)(this.el,\"transition\",\"transform 0s linear 0s\")):(0,s.styleUtil)(this.el,\"top\",this.top+\"px\")}},{key:\"pauseMove\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this;if(\"paused\"!==t.status&&(\"forcedPause\"!==t.status&&(this.status=\"paused\"),t._moveV=void 0,this.el))if(\"scroll\"===this.mode){var n=t.danmu.containerPos;if(e){var i=((new Date).getTime()-t.moveTime)/1e3,o=i*this.moveV,r=0;r=t.moveMoreS-o>=0?\"b2t\"===this.direction?(t.moveMoreS-o)/t.moveContainerHeight*n.height:(t.moveMoreS-o)/t.moveContainerWidth*n.width:t.moveMoreS-o,\"b2t\"===this.direction?(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+r+\"px) translateZ(0px) rotate(90deg)\"):(0,s.styleUtil)(this.el,\"left\",r+\"px\")}else\"b2t\"===this.direction?(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+(this.el.getBoundingClientRect().top-n.top)+\"px) translateZ(0px) rotate(90deg)\"):(0,s.styleUtil)(this.el,\"left\",this.el.getBoundingClientRect().left-n.left+\"px\");\"b2t\"===this.direction||(0,s.styleUtil)(this.el,\"transform\",\"translateX(0px) translateY(0px) translateZ(0px)\"),(0,s.styleUtil)(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){if(this.hasMove||(this.danmu.emit(\"bullet_start\",this),this.hasMove=!0),(\"forcedPause\"!==this.status||e)&&this.el&&\"start\"!==this.status)if(this.status=\"start\",(0,s.styleUtil)(this.el,\"backface-visibility\",\"hidden\"),(0,s.styleUtil)(this.el,\"perspective\",\"500em\"),\"scroll\"===this.mode){var t=this.danmu.containerPos;if(\"b2t\"===this.direction){var n=(this.el.getBoundingClientRect().bottom-t.top)/this.moveV;(0,s.styleUtil)(this.el,\"transition\",\"transform \"+n+\"s linear 0s\"),(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(-\"+this.height+\"px) translateZ(0px) rotate(90deg)\"),this.moveTime=(new Date).getTime(),this.moveMoreS=this.el.getBoundingClientRect().top-t.top,this.moveContainerHeight=t.height}else{if(!this.el)return;var i=this.el.getBoundingClientRect(),o=i.right-t.left,r=o/this.moveV;i.right>t.left?((0,s.styleUtil)(this.el,\"transition\",\"transform \"+r+\"s linear 0s\"),(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+o+\"px) translateY(0px) translateZ(0px)\"),this.moveTime=(new Date).getTime(),this.moveMoreS=i.left-t.left,this.moveContainerWidth=t.width):(this.status=\"end\",this.remove())}}else{var a=(new Date).getTime(),l=(this.startTime&&a-this.startTime>this.duration?a-this.startTime:this.duration)/1e3;(0,s.styleUtil)(this.el,\"left\",\"50%\"),(0,s.styleUtil)(this.el,\"margin\",\"0 0 0 -\"+this.width/2+\"px\"),(0,s.styleUtil)(this.el,\"visibility\",\"hidden\"),(0,s.styleUtil)(this.el,\"transition\",\"visibility \"+l+\"s 0s\"),this.pastDuration||(this.pastDuration=1),this.startTime=a}}},{key:\"remove\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.logger&&this.logger.info(\"remove #\"+(this.options.txt||\"[DOM Element]\")+\"#\");var t=this;e&&t.pauseMove(),t.el&&t.el.parentNode&&(t.detach(),this.options.el&&1===this.options.el.nodeType&&this.danmu.config.disableCopyDOM&&(0,s.styleUtil)(this.options.el,\"transform\",\"none\"),t.danmu.emit(\"bullet_remove\",{bullet:t}))}},{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}},{key:\"moveV\",get:function(){var e=this._moveV;if(!e){if(this.options.moveV)e=this.options.moveV;else if(this.elPos){var t=this.danmu.containerPos;e=(\"b2t\"===this.direction?t.height+this.height:t.width+this.width)/this.duration*1e3}e&&(e*=this.danmu.main.playRate,this._moveV=e)}return e}}]),t}(a.default);t.default=u},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(1),a=(i=r)&&i.__esModule?i:{default:i},s=n(0),l=n(31);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)),i=n;return i.setLogger(\"channel\"),i.danmu=e,i.width=0,i.height=0,i.reset(!0),i.direction=e.direction,i.channels=[],i.updatePos(),(0,s.attachEventListener)(n.danmu,\"bullet_remove\",(function(e){i.removeBullet(e.bullet)}),\"destroy\"),(0,s.attachEventListener)(n.danmu,\"changeDirection\",(function(e){i.direction=e}),\"destroy\"),(0,s.attachEventListener)(n.danmu,\"channel_resize\",(function(){i.resize()}),\"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),o(t,[{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),this.channels.splice(0,this.channels.length),this._cancelResizeTimer(),this)s.hasOwnProperty.call(this,e)&&delete this[e]}},{key:\"reset\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logger&&this.logger.info(\"reset\");var t=this,n=t.danmu,i=n.container,o=n.bulletBtn;function r(){var e=i.getBoundingClientRect();t.width=e.width,t.height=e.height,t.resetId&&(cancelAnimationFrame(t.resetId),t.resetId=null);var n=t._initChannels(),o=n.channelSize,r=n.channelCount,a=n.channels;t.channelCount=r,t.channels=a,\"b2t\"===t.direction?t.channelWidth=o:t.channelHeight=o}t.container=i,o&&o.main&&o.main.queue.forEach((function(e){e.remove()})),t.channels&&t.channels.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(e){for(var n=0;n<t.channels.length;n++)t.channels[n].queue[e].forEach((function(e){e.remove()}))})),o&&o.main&&o.main.data&&o.main.data.forEach((function(e){e.attached_=!1})),e?this.resetId=requestAnimationFrame(r):r()}},{key:\"getRealOccupyArea\",value:function(){return{width:this.width,height:this.height}}},{key:\"updatePos\",value:function(){var e=this.container.getBoundingClientRect();this.containerPos=e,this.containerWidth=e.width,this.containerHeight=e.height,this.containerTop=e.top,this.containerBottom=e.bottom,this.containerLeft=e.left,this.containerRight=e.right}},{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,h=i.length;c<h;c++)if(i[c].queue[e.mode].some((function(t){return t.id===e.id})))return{result:!1,message:\"exited, channelOrder=\"+c+\",danmu_id=\"+e.id};if(\"scroll\"===e.mode)for(var f=0,d=i.length-a;f<=d;f++){s=!0;for(var p=f;p<f+a;p++){if((l=i[p]).operating.scroll){s=!1;break}if(l.bookId.scroll&&l.bookId.scroll!==e.id){s=!1;break}l.operating.scroll=!0;var g=l.queue.scroll[0];if(g){var m=g.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=void 0,y=g.moveV,b=void 0,_=e.moveV,w=void 0;if(\"b2t\"===t.direction?(b=(v=m.bottom-t.containerTop)/y,w=t.containerHeight+e.random-v):(b=(v=m.right-t.containerLeft)/y,w=t.containerWidth+e.random-v),_>y){var O=w/(_-y);if(n.config.bOffset||(n.config.bOffset=0),b+n.config.bOffset>=O){var k=b*_-t.containerPos.width;k>0&&e.updateOffset(k+(1+Math.ceil(5*Math.random())))}}}l.operating.scroll=!1}if(s){u=f;break}}else if(\"top\"===e.mode)for(var x=0,E=i.length-a;x<=E;x++){s=!0;for(var C=x;C<x+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=x;break}}else if(\"bottom\"===e.mode)for(var j=i.length-a;j>=0;j--){s=!0;for(var M=j;M<j+a;M++){if(M<=Math.floor(i.length/2)){s=!1;break}if((l=i[M]).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=j;break}}if(-1!==u){for(var T=u,L=u+a;T<L;T++)(l=i[T]).operating[e.mode]=!0,l.queue[e.mode].unshift(e),e.prior&&(delete l.bookId[e.mode],t.logger&&t.logger.info(T+\"号轨道恢复正常使用\")),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],e.el.setAttribute(\"data-line-index\",u+1),\"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 P=0,S=-1,z=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>=P&&(P=e.start,S=n,z=e)})),z){z.remove(),t.removeBullet(z),t.danmu.bulletBtn.main.queue.splice(S,1),e.channel_id=z.channel_id;for(var D=z.channel_id[0],I=z.channel_id[0]+z.channel_id[1];D<I;D++)(l=i[D]).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=z.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 R=0,q=i.length-a;R<=q;R++){s=!0;for(var A=R;A<R+a;A++)if(i[A].bookId[e.mode]){s=!1;break}if(s){u=R;break}}if(-1!==u){for(var U=u;U<u+a;U++)i[U].bookId[e.mode]=e.id,t.logger&&t.logger.info(U+\"号轨道被\"+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:\"resizeSync\",value:function(){this.resize(!0)}},{key:\"_initChannels\",value:function(){var e=this.danmu.config,t=e.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),n=void 0;if(e.area){var i=e.area,o=i.lines,r=i.start,a=i.end;if((0,l.validAreaLineRule)(o))n=o,\"b2t\"===this.direction?this.width=n*t:this.height=n*t;else if(r>=0&&a>=r){var u=a-r;\"b2t\"===this.direction?this.width=Math.floor(this.width*u):this.height=Math.floor(this.height*u)}}(0,s.isNumber)(n)||(n=\"b2t\"===this.direction?Math.floor(this.width/t):Math.floor(this.height/t));for(var c=[],h=0;h<n;h++)c[h]={id:h,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};return{channelSize:t,channelCount:n,channels:c}}},{key:\"resize\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logger&&this.logger.info(\"resize\");var t=this;function n(e,t){e[t]={id:t,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}}}function i(e,i){function o(n){[\"scroll\",\"top\"].forEach((function(i){t.channels[n].queue[i].forEach((function(t){t.el&&e[n].queue[i].push(t)}))}))}function r(n){t.channels[n].queue.bottom.forEach((function(o){if(o.el&&(e[n+e.length-t.channels.length].queue.bottom.push(o),o.channel_id[0]+o.channel_id[1]-1===n)){var r=[].concat(o.channel_id);o.channel_id=[r[0]-t.channels.length+e.length,r[1]],o.top=o.channel_id[0]*i,t.danmu.config.area&&t.danmu.config.area.start&&(o.top+=t.containerHeight*t.danmu.config.area.start),o.topInit()}}))}for(var a=0;a<t.channels.length;a++)n(e,a),o(a),r(a);for(var s=function(t){[\"scroll\",\"top\",\"bottom\"].forEach((function(n){e[t].queue[n].forEach((function(e){e.resized=!1}))}))},l=0;l<e.length;l++)s(l);t.channels=e,\"b2t\"===t.direction?t.channelWidth=i:t.channelHeight=i}function o(e,i){for(var o=[\"scroll\",\"top\",\"bottom\"],r=function(r){n(e,r),o.forEach((function(n){if(\"top\"===n&&r>Math.floor(e.length/2));else if(\"bottom\"===n&&r<=Math.floor(e.length/2));else{var o=\"bottom\"===n?r-e.length+t.channels.length:r;t.channels[o].queue[n].forEach((function(a,s){if(a.el){if(e[r].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+e.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()}t.channels[o].queue[n].splice(s,1)}}))}}))},a=0;a<e.length;a++)r(a);var s=function(t){o.forEach((function(n){e[t].queue[n].forEach((function(e){e.resized=!1}))}))};for(a=0;a<e.length;a++)s(a);t.channels=e,\"b2t\"===t.direction?t.channelWidth=i:t.channelHeight=i}function r(){var e=t.danmu,n=e.container,r=e.bulletBtn;t.container=n,t.updatePos(),t._cancelResizeTimer(),r.main.data&&r.main.data.forEach((function(e){e.bookChannelId&&(delete e.bookChannelId,t.logger&&t.logger.info(\"resize导致\"+e.id+\"号优先弹幕预定取消\"))})),t.logger&&t.logger.info(\"resize导致所有轨道恢复正常使用\"),t.width=t.containerWidth,t.height=t.containerHeight;var a=t._initChannels(),s=a.channelSize,l=a.channels;t.channels&&(t.channels.length<=l.length?i(l,s):o(l,s)),t.resizing=!1}t.resizing||(t.resizing=!0,e?r():(this._cancelResizeTimer(),this.resizeId=requestAnimationFrame(r)))}},{key:\"_cancelResizeTimer\",value:function(){this.resizeId&&(cancelAnimationFrame(this.resizeId),this.resizeId=null)}}]),t}(a.default);t.default=u,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.validAreaLineRule=function(e){return\"number\"==typeof e&&e>=0&&Number.isInteger(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}}(),o=n(0);var r=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 i(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:\"unused\",value:function(e){var t=this.usingList.indexOf(e);t<0||(this.usingList.splice(t,1),e.style.opacity=0,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)o.hasOwnProperty.call(this,n)&&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?(0,o.styleUtil)(e,\"transform\",\"none\"):e.setAttribute(\"style\",\"\"))}}]),e}();t.default=r,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.destroyObserver=t.unObserver=t.addObserver=void 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=n(0);var r=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((0,o.throttle)((function(e){t.__trigger(e)}),100))}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){r.addObserver(e,t)},t.unObserver=function(e,t){r.unObserver(e,t)},t.destroyObserver=function(e,t){r.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:#fff;-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}\",\"\"])},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,h=[],f=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(b(i.parts[a],t))}else{var s=[];for(a=0;a<i.parts.length;a++)s.push(b(i.parts[a],t));r[i.id]={id:i.id,refs:1,parts:s}}}}function p(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 g(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=h[h.length-1];if(\"top\"===e.insertAt)i?i.nextSibling?n.insertBefore(t,i.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),h.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=h.indexOf(e);t>=0&&h.splice(t,1)}function v(e){var t=document.createElement(\"style\");return void 0===e.attrs.type&&(e.attrs.type=\"text/css\"),y(t,e.attrs),g(e,t),t}function y(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function b(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\",y(t,e.attrs),g(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=p(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(p(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=(_=[],function(e,t){return _[e]=t,_.filter(Boolean).join(\"\\n\")});function O(e,t,n,i){var o=n?\"\":i.css;if(e.styleSheet)e.styleSheet.cssText=w(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=f(i)),o&&(i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([i],{type:\"text/css\"}),s=e.href;e.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}},function(e,t){e.exports=function(e){var t=\"undefined\"!=typeof window&&window.location;if(!t)throw new Error(\"fixUrls requires window.location\");if(!e||\"string\"!=typeof e)return e;var n=t.protocol+\"//\"+t.host,i=n+t.pathname.replace(/\\/[^\\/]*$/,\"/\");return e.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi,(function(e,t){var o,r=t.trim().replace(/^\"(.*)\"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(r)?e:(o=0===r.indexOf(\"//\")?r:0===r.indexOf(\"/\")?n+r:i+r.replace(/^\\.\\//,\"\"),\"url(\"+JSON.stringify(o)+\")\")}))}}])}));\n//# sourceMappingURL=index.js.map","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * Unidragger v2.4.0\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.4.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 ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\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/dist/cjs.js??ref--5-3!./enter.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./enter.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./enter.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000;z-index:120}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner{display:block;position:absolute;left:50%;top:50%;height:100px;width:100px;position:relative;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div{width:12%;height:26%;background-color:hsla(0,0%,100%,.7);position:absolute;left:44%;top:37%;opacity:0;border-radius:30px;-webkit-animation:fade 1s linear infinite;animation:fade 1s linear infinite}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar1{-webkit-transform:rotate(0deg) translateY(-142%);-ms-transform:rotate(0deg) translateY(-142%);transform:rotate(0deg) translateY(-142%);-webkit-animation-delay:0s;animation-delay:0s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar2{-webkit-transform:rotate(30deg) translateY(-142%);-ms-transform:rotate(30deg) translateY(-142%);transform:rotate(30deg) translateY(-142%);-webkit-animation-delay:-.9163s;animation-delay:-.9163s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar3{-webkit-transform:rotate(60deg) translateY(-142%);-ms-transform:rotate(60deg) translateY(-142%);transform:rotate(60deg) translateY(-142%);-webkit-animation-delay:-.833s;animation-delay:-.833s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar4{-webkit-transform:rotate(90deg) translateY(-142%);-ms-transform:rotate(90deg) translateY(-142%);transform:rotate(90deg) translateY(-142%);-webkit-animation-delay:-.7497s;animation-delay:-.7497s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar5{-webkit-transform:rotate(120deg) translateY(-142%);-ms-transform:rotate(120deg) translateY(-142%);transform:rotate(120deg) translateY(-142%);-webkit-animation-delay:-.6664s;animation-delay:-.6664s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar6{-webkit-transform:rotate(150deg) translateY(-142%);-ms-transform:rotate(150deg) translateY(-142%);transform:rotate(150deg) translateY(-142%);-webkit-animation-delay:-.5831s;animation-delay:-.5831s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar7{-webkit-transform:rotate(180deg) translateY(-142%);-ms-transform:rotate(180deg) translateY(-142%);transform:rotate(180deg) translateY(-142%);-webkit-animation-delay:-.4998s;animation-delay:-.4998s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar8{-webkit-transform:rotate(210deg) translateY(-142%);-ms-transform:rotate(210deg) translateY(-142%);transform:rotate(210deg) translateY(-142%);-webkit-animation-delay:-.4165s;animation-delay:-.4165s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar9{-webkit-transform:rotate(240deg) translateY(-142%);-ms-transform:rotate(240deg) translateY(-142%);transform:rotate(240deg) translateY(-142%);-webkit-animation-delay:-.3332s;animation-delay:-.3332s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar10{-webkit-transform:rotate(270deg) translateY(-142%);-ms-transform:rotate(270deg) translateY(-142%);transform:rotate(270deg) translateY(-142%);-webkit-animation-delay:-.2499s;animation-delay:-.2499s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar11{-webkit-transform:rotate(300deg) translateY(-142%);-ms-transform:rotate(300deg) translateY(-142%);transform:rotate(300deg) translateY(-142%);-webkit-animation-delay:-.1666s;animation-delay:-.1666s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar12{-webkit-transform:rotate(330deg) translateY(-142%);-ms-transform:rotate(330deg) translateY(-142%);transform:rotate(330deg) translateY(-142%);-webkit-animation-delay:-.0833s;animation-delay:-.0833s}@-webkit-keyframes fade{0%{opacity:1}to{opacity:.25}}@keyframes fade{0%{opacity:1}to{opacity:.25}}.xgplayer-skin-default.xgplayer-is-enter .xgplayer-enter{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./cssfullscreen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-cssfullscreen,.xgplayer-skin-default .xgplayer-cssfullscreen-img{position:relative;-webkit-order:12;-moz-box-ordinal-group:13;order:12;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon{width:32px;margin-top:5px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-40px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover,.xgplayer-skin-default .xgplayer-cssfullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-47px}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen-img{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}.xgplayer-lang-is-en .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-46px}.lang-is-jp .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-120px}.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-60px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./volume.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-volume{outline:none;-webkit-order:4;-moz-box-ordinal-group:5;order:4;width:40px;height:40px;display:block;position:relative;z-index:18}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon{margin-top:8px;cursor:pointer;position:absolute;bottom:-9px}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:none}.xgplayer-skin-default .xgplayer-slider{display:none;position:absolute;width:28px;height:92px;background:rgba(0,0,0,.54);border-radius:1px;bottom:42px;outline:none}.xgplayer-skin-default .xgplayer-slider:after{content:\\\" \\\";display:block;height:15px;width:28px;position:absolute;bottom:-15px;left:0;z-index:20}.xgplayer-skin-default .xgplayer-bar,.xgplayer-skin-default .xgplayer-drag{display:block;position:absolute;bottom:6px;left:12px;background:hsla(0,0%,100%,.3);border-radius:100px;width:4px;height:76px;outline:none;cursor:pointer}.xgplayer-skin-default .xgplayer-drag{bottom:0;left:0;background:#fa1f41;max-height:76px}.xgplayer-skin-default .xgplayer-drag:after{content:\\\" \\\";display:inline-block;width:8px;height:8px;background:#fff;box-shadow:0 0 5px 0 rgba(0,0,0,.26);position:absolute;border-radius:50%;left:-2px;top:-6px}.xgplayer-skin-default.xgplayer-volume-active .xgplayer-slider,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:none}.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:block}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-large,.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:none}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:block}.xgplayer-skin-default.xgplayer-mobile .xgplayer-volume .xgplayer-slider{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./definition.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-definition{-webkit-order:5;-moz-box-ordinal-group:6;order:5;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-left:10px;margin-top:-119px}.xgplayer-skin-default .xgplayer-definition ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:0;text-align:center;white-space:nowrap;margin-left:-10px;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-definition ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-skin-default .xgplayer-definition ul li.selected,.xgplayer-skin-default .xgplayer-definition ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-definition .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-definition ul,.xgplayer-skin-default.xgplayer-is-definition .xgplayer-definition{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./playbackRate.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./playbackRate.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./playbackRate.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-playbackrate{-webkit-order:8;-moz-box-ordinal-group:9;order:8;width:60px;height:150px;z-index:18;position:relative;display:inline-block;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-playbackrate ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);text-align:left;white-space:nowrap;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-playbackrate ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);position:relative;padding:4px 0;text-align:center}.xgplayer-skin-default .xgplayer-playbackrate ul li.selected,.xgplayer-skin-default .xgplayer-playbackrate ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-playbackrate ul li:first-child{position:relative;margin-top:12px}.xgplayer-skin-default .xgplayer-playbackrate ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-skin-default .xgplayer-playbackrate .name{width:60px;height:20px;position:absolute;bottom:0;text-align:center;font-family:PingFangSC-Regular;font-size:13px;background:rgba(0,0,0,.38);color:hsla(0,0%,100%,.8);border-radius:10px;line-height:20px}.xgplayer-skin-default .xgplayer-playbackrate span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-skin-default .xgplayer-playbackrate:hover{opacity:1}.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-playbackrate ul{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./download.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-download{position:relative;-webkit-order:9;-moz-box-ordinal-group:10;order:9;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-download .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-download .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-download .xgplayer-icon svg{position:relative;top:5px;left:5px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips{margin-left:-20px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips .xgplayer-tip-download{display:block}.xgplayer-skin-default .xgplayer-download:hover{opacity:.85}.xgplayer-skin-default .xgplayer-download:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-download .xgplayer-tips{margin-left:-32px}.xgplayer-lang-is-jp .xgplayer-download .xgplayer-tips{margin-left:-40px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./danmu.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./danmu.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./danmu.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .danmu-switch{-webkit-order:6;-moz-box-ordinal-group:7;order:6;z-index:26}.xgplayer-skin-default .xgplayer-danmu{display:none;position:absolute;top:0;left:0;right:0;height:100%;overflow:hidden;z-index:9;outline:none;pointer-events:none}.xgplayer-skin-default .xgplayer-danmu>*{position:absolute;white-space:nowrap;z-index:9;pointer-events:auto}.xgplayer-skin-default .xgplayer-danmu.xgplayer-has-danmu{display:block}.xgplayer-skin-default .xgplayer-panel{outline:none;-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:40px;height:40px;display:inline-block;position:relative;font-family:PingFangSC-Regular;font-size:13px;color:hsla(0,0%,100%,.8);z-index:36}.xgplayer-skin-default .xgplayer-panel .xgplayer-panel-icon{cursor:pointer;position:absolute;margin-left:5px;top:10px}.xgplayer-skin-default .xgplayer-panel-active{display:block!important;bottom:30px}.xgplayer-skin-default .xgplayer-panel-slider{z-index:36;display:none;position:absolute;width:230px;height:230px;background:rgba(0,0,0,.54);border-radius:1px;padding:10px 20px;outline:none;left:-115px;bottom:40px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode{padding-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-radio li{display:inline;list-style:none;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode ul{display:-webkit-flex;display:-moz-box;display:flex;-webkit-justify-content:space-around;justify-content:space-around}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode li{margin:0 12px;font-size:11px;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-font{margin-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency{display:block;margin-top:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-progress{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:4px;background:linear-gradient(90deg,#f85959,#f85959 100%,#aaa)}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea{display:block;margin-top:8px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-threequarters,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-twoquarters{margin-left:-6px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-full{margin-right:3px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-full-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-onequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-threequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-twoquarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-zero-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./pip.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-pip{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-pip .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-pip .name span{width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.lang-is-jp .xgplayer-pip .name span{width:70px;height:20px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./miniplayer.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./miniplayer.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./miniplayer.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-miniplayer{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-miniplayer .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-miniplayer .name span{width:80px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-miniplayer-lay{position:absolute;top:26px;left:0;width:100%;height:100%;z-index:130;cursor:pointer;background-color:transparent;display:none}.xgplayer-skin-default .xgplayer-miniplayer-lay div{width:100%;height:100%}.xgplayer-skin-default .xgplayer-miniplayer-drag{cursor:move;position:absolute;top:0;left:0;width:100%;height:26px;line-height:26px;background-image:linear-gradient(rgba(0,0,0,.3),transparent);z-index:130;display:none}.xgplayer-skin-default .xgplayer-miniplayer-drag .drag-handle{width:100%}.xgplayer-skin-default.xgplayer-miniplayer-active{position:fixed;right:0;bottom:200px;width:320px;height:180px;z-index:110}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-controls,.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-danmu{display:none}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-lay{display:block}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-drag{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-skin-default.xgplayer-inactive .xgplayer-miniplayer-drag{display:none}.lang-is-jp .xgplayer-miniplayer .name span{width:70px;height:20px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./playNext.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-playnext{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;cursor:pointer;top:-2px}.xgplayer-skin-default .xgplayer-playnext .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-playnext .xgplayer-tips .xgplayer-tip-playnext{display:block}.xgplayer-skin-default .xgplayer-playnext:hover{opacity:.85}.xgplayer-skin-default .xgplayer-playnext:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-playnext .xgplayer-tips{margin-left:-25px}.xgplayer-lang-is-jp .xgplayer-playnext .xgplayer-tips{margin-left:-38px}.xgplayer-skin-default.xgplayer-playnext-inactive .xgplayer-playnext{display:none}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./rotate.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-rotate{position:relative;-webkit-order:10;-moz-box-ordinal-group:11;order:10;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips .xgplayer-tip-rotate{display:block}.xgplayer-skin-default .xgplayer-rotate:hover{opacity:.85}.xgplayer-skin-default .xgplayer-rotate:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-rotate .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-rotate .xgplayer-tips{margin-left:-38px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./reload.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./reload.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./reload.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-reload{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;width:40px;height:40px;cursor:pointer}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips .xgplayer-tip-reload{display:block}.xgplayer-skin-default .xgplayer-reload:hover{opacity:.85}.xgplayer-skin-default .xgplayer-reload:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-reload .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-reload .xgplayer-tips{margin-left:-38px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./screenShot.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-screenshot{-webkit-order:11;-moz-box-ordinal-group:12;order:11;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-screenshot .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-screenshot .name span{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:0 10px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-lang-is-en .xgplayer-screenshot .name span,.xgplayer-lang-is-jp .xgplayer-screenshot .name span{width:75px;height:20px}\", \"\"]);\n\n// exports\n","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-texttrack{-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-texttrack ul{display:none;list-style:none;min-width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;text-align:center;white-space:nowrap;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-texttrack ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:auto;padding:6px 13px}.xgplayer-skin-default .xgplayer-texttrack ul li.selected,.xgplayer-skin-default .xgplayer-texttrack ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-texttrack .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-texttrack.xgplayer-texttrack-hide{display:none}xg-text-track{transition:bottom .3s ease}.xgplayer-skin-default.xgplayer-is-texttrack .xgplayer-texttrack,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-texttrack ul{display:block}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./error.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:125;font-family:PingFangSC-Regular;font-size:14px;color:#fff;text-align:center;line-height:100%;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center}.xgplayer-skin-default .xgplayer-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-skin-default .xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px}.xgplayer-skin-default.xgplayer-is-error .xgplayer-error{display:-webkit-flex;display:-moz-box;display:flex}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./memoryPlay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./memoryPlay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./memoryPlay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-memoryplay-spot{position:absolute;height:32px;left:10px;bottom:46px;background:rgba(0,0,0,.5);border-radius:32px;line-height:32px;color:#ddd;z-index:15;padding:0 32px 0 16px}.xgplayer-skin-default .xgplayer-memoryplay-spot .xgplayer-lasttime{color:red;font-weight:700}.xgplayer-skin-default .xgplayer-memoryplay-spot .btn-close{position:absolute;width:16px;height:16px;right:10px;top:2px;cursor:pointer;color:#fff;font-size:16px}\", \"\"]);\n\n// exports\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./airplay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./airplay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./airplay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-airplay{position:relative;-webkit-order:11;-moz-box-ordinal-group:12;order:11;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon{margin-top:6px;margin-left:6px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon .xgplayer-icon-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips .xgplayer-tip-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay:hover{opacity:.85}.xgplayer-skin-default .xgplayer-airplay:hover .xgplayer-tips{display:block}\", \"\"]);\n\n// exports\n","let airplay = function () {\n let player = this\n if(!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent) return\n\n function onAirplayBtnClick () {\n player.video.webkitShowPlaybackTargetPicker()\n }\n player.on('airplayBtnClick', onAirplayBtnClick)\n\n function onDestroy () {\n player.off('airplayBtnClick', onAirplayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'airplay',\n method: airplay\n}\n","import { hasClass, removeClass, addClass } from '../utils/util'\n\nlet cssFullscreen = function () {\n let player = this\n let root = player.root\n\n function onCssFullscreenBtnClick () {\n if (hasClass(root, 'xgplayer-is-cssfullscreen')) {\n player.exitCssFullscreen()\n } else {\n player.getCssFullscreen()\n }\n }\n player.on('cssFullscreenBtnClick', onCssFullscreenBtnClick)\n player.on('exitFullscreen', () => {\n removeClass(root, 'xgplayer-is-cssfullscreen')\n })\n\n function onDestroy () {\n player.off('cssFullscreenBtnClick', onCssFullscreenBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getCssFullscreen = function () {\n let player = this\n if (player.config.fluid) {\n player.root.style['padding-top'] = ''\n }\n addClass(player.root, 'xgplayer-is-cssfullscreen')\n player.emit('requestCssFullscreen')\n }\n\n player.exitCssFullscreen = function () {\n let player = this\n if (player.config.fluid) {\n player.root.style['width'] = '100%'\n player.root.style['height'] = '0'\n player.root.style['padding-top'] = `${player.config.height * 100 / player.config.width}%`\n }\n removeClass(player.root, 'xgplayer-is-cssfullscreen')\n player.emit('exitCssFullscreen')\n }\n}\n\nexport default {\n name: 'cssFullscreen',\n method: cssFullscreen\n}","import { addClass, toggleClass, copyDom, hasClass, removeClass } from '../utils/util'\n\nlet danmu = function () {\n let player = this\n\n function onInitDanmu(danmujs) {\n let container = player.root.querySelector('xg-danmu')\n addClass(container, 'xgplayer-has-danmu')\n if (!player.config.danmu.closeDefaultBtn) {\n player.danmuBtn = copyDom(danmujs.bulletBtn.createSwitch(true))\n player.controls.appendChild(player.danmuBtn)\n\n function onTimeupdate () {\n danmujs.start()\n }\n ['click', 'touchend'].forEach(item => {\n player.danmuBtn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n toggleClass(player.danmuBtn, 'danmu-switch-active')\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n player.emit('danmuBtnOn')\n addClass(container, 'xgplayer-has-danmu')\n player.once('timeupdate', onTimeupdate)\n } else {\n player.emit('danmuBtnOff')\n removeClass(container, 'xgplayer-has-danmu')\n danmujs.stop()\n }\n })\n })\n\n player.onElementClick && container.addEventListener('click', function (e) { player.onElementClick(e, container) }, false)\n player.onElementDblclick && container.addEventListener('dblclick', function (e) { player.onElementDblclick(e, container) }, false)\n\n function onPause () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.pause()\n }\n }\n player.on('pause', onPause)\n\n function onPlay () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.play()\n }\n }\n player.on('play', onPlay)\n\n function onSeeked () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.stop()\n danmujs.start()\n }\n }\n player.on('seeked', onSeeked)\n\n function onDestroy () {\n player.off('timeupdate', onTimeupdate)\n player.off('pause', onPause)\n player.off('play', onPlay)\n player.off('seeked', onSeeked)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n }\n }\n player.on('initDefaultDanmu', onInitDanmu)\n\n}\n\nexport default {\n name: 'danmu',\n method: danmu\n}","let definition = function () {\n let player = this\n\n function onDestroy () {\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'definition',\n method: definition\n}","import downloadUtil from 'downloadjs'\nimport {getAbsoluteURL} from '../utils/url'\n\nlet download = function () {\n let player = this\n\n function onDownloadBtnClick () {\n // must pass an absolute url for download\n player.download()\n }\n player.on('downloadBtnClick', onDownloadBtnClick)\n\n function onDestroy () {\n player.off('downloadBtnClick', onDownloadBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.download = function () {\n const url = getAbsoluteURL(this.config.url)\n downloadUtil(url)\n }\n}\n\nexport default {\n name: 'download',\n method: download\n}","\nexport const getAbsoluteURL = function (url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n const div = document.createElement('div')\n div.innerHTML = `<a href=\"${url}\">x</a>`\n url = div.firstChild.href\n }\n return url\n}\n","import Errors from '../error'\n/**\n * Error retry plugin\n * get config from player.config.errorConfig\n * The Plugin is just deal with the situation that play with video.src,\n * and get the http status of current video.src\n */\n\nconst defaultConfig = {\n maxCount: 3, // max number of retries\n backupUrl: '', // the backup url for retry\n isFetch: true, // is need to check the cdn url statud\n fetchTimeout: 100 // timeout time for get cdn status\n}\n\nfunction errorRetry () {\n const player = this\n // 无设置参数或者是通过扩展播放的不做处理\n if (!player.config.errorConfig || player.src.indexOf('blob:') > -1) {\n return\n }\n const errorConfig = {}\n const _inConfig = player.config.errorConfig\n for (const key in defaultConfig) {\n if (_inConfig[key] === undefined) {\n errorConfig[key] = defaultConfig[key]\n } else {\n errorConfig[key] = _inConfig[key]\n }\n }\n player.retryData = {\n count: 0, // 重试次数\n errfTimer: null, // 超时设置定时器\n isFetchReturn: false, // fetch请求是否已经返回\n currentTime: 0 // 出错的时候时间\n }\n\n function errorfetch (player, url, timeout) {\n const resolveFun = (resolve, data) => {\n if (!player.retryData.isFetchReturn) {\n player.retryData.isFetchReturn = true\n resolve(data)\n }\n }\n return new Promise((resolve, reject) => {\n try {\n let xhr = new window.XMLHttpRequest()\n xhr.open('get', url)\n xhr.onload = function () {\n resolveFun(resolve, {status: xhr.status, statusText: xhr.statusText, xhr})\n }\n xhr.onerror = function () {\n resolveFun(resolve, {status: xhr.status, statusText: xhr.statusText || 'The network environment is disconnected or the address is invalid', xhr})\n }\n xhr.onabort = function () {\n // console.log('task onerror', xhr)\n }\n player.retryData.errfTimer = window.setTimeout(() => {\n let errfTimer = player.retryData.errfTimer\n window.clearTimeout(errfTimer)\n player.retryData.errfTimer = null\n resolveFun(resolve, {status: -1, statusText: 'request timeout'})\n }, timeout)\n xhr.send()\n } catch (err) {\n player.retryData.isFetchReturn = true\n resolveFun(resolve, {status: -2, statusText: 'request error'})\n }\n })\n }\n\n function retryCanPlay () {\n // console.log(`retryCanPlay this.retryData.currentTime:${this.retryData.currentTime}`)\n this.currentTime = this.retryData.currentTime\n this.play()\n this.retryData.retryCode = 0\n this.retryData.isFetchReturn = false\n this.retryData.currentTime = 0\n }\n\n const _originErrorEmit = player._onError\n player._onError = (data) => {\n const errorCount = this.retryData.count\n // console.log(`originErrorEmit:errorCount:${errorCount}`, data)\n if (errorCount > errorConfig.maxCount) {\n if (errorConfig.isFetch) {\n errorfetch(this, this.currentSrc, errorConfig.fetchTimeout).then((data) => {\n this.emit('error', new Errors({\n type: 'network',\n currentTime: this.currentTime,\n duration: this.duration || 0,\n networkState: this.networkState,\n readyState: this.readyState,\n currentSrc: this.currentSrc,\n src: this.src,\n ended: this.ended,\n httpCode: data.status,\n httpMsg: data.statusText,\n errd: {\n line: 101,\n msg: this.error,\n handle: 'plugin errorRetry'\n },\n errorCode: this.video && this.video.error.code,\n mediaError: this.video && this.video.error\n }));\n _originErrorEmit.call(this, data)\n })\n } else {\n _originErrorEmit.call(this, data)\n }\n return;\n }\n if (errorCount === 0) {\n this.retryData.currentTime = this.currentTime\n this.once('canplay', retryCanPlay.bind(this))\n }\n let src = ''\n if (errorConfig.count < 2) {\n src = errorConfig.backupUrl ? errorConfig.backupUrl : player.currentSrc\n } else {\n src = errorConfig.backupUrl && errorCount > 1 ? errorConfig.backupUrl : player.currentSrc\n }\n this.retryData.count++\n this.src = src\n }\n}\n\nexport default {\n name: 'errorretry',\n method: errorRetry\n}","import { on, hasClass, removeClass, addClass } from '../utils/util'\nclass Keyboard {\n constructor (player) {\n this.player = player\n this.state = {\n playbackRate: 0,\n isRepeat: false,\n keyCode: 0,\n repeat: 0,\n isBody: false\n }\n this.timer = null\n this.initEvents()\n }\n\n initEvents () {\n const {root, config} = this.player\n this.player.onBodyKeydown = this.onBodyKeydown.bind(this)\n this.player.onKeydown = this.onKeydown.bind(this)\n this.player.onKeyup = this.onKeyup.bind(this)\n if (!config.keyShortcut || config.keyShortcut === 'on') {\n document.addEventListener('keydown', this.player.onBodyKeydown)\n root.addEventListener('keydown', this.player.onKeydown)\n let destroyFunc = () => {\n document.removeEventListener('keydown', this.player.onBodyKeydown)\n root.removeEventListener('keydown', this.player.onKeydown)\n clearTimeout(this.timer)\n this.timer = null\n }\n on(this.player, 'destroy', destroyFunc)\n }\n }\n\n checkTarget (e) {\n const {player} = this\n return e.target === player.root || e.target === player.video || e.target === player.controls\n }\n\n onBodyKeydown (event) {\n let e = event || window.event\n const keyCode = e.keyCode\n if ((e.target === document.body) && (keyCode === 37 || keyCode === 39 || keyCode === 32)) {\n e.preventDefault()\n e.cancelBubble = true\n e.returnValue = false\n if (!e.repeat) {\n document.addEventListener('keyup', this.player.onKeyup)\n }\n this.handler(e)\n return false\n }\n }\n\n onKeydown (event) {\n let e = event || window.event\n const keyCode = e.keyCode\n if (this.checkTarget(e) && (keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40 || keyCode === 32 || keyCode === 27)) {\n e.preventDefault()\n e.cancelBubble = true\n e.returnValue = false\n this.player.emit('focus')\n if (!e.repeat) {\n this.player.root.addEventListener('keyup', this.player.onKeyup)\n }\n this.handler(e)\n return false\n }\n }\n\n onKeyup () {\n const {state, player} = this\n document.removeEventListener('keyup', this.player.onKeyup)\n player.root.removeEventListener('keyup', this.player.onKeyup)\n if (!state.keyCode) {\n return\n }\n if (state.playbackRate !== 0) {\n player.playbackRate = state.playbackRate\n }\n\n if (!state.isRepeat) {\n this.handlerKeyCode(state.keyCode, false)\n }\n state.playbackRate = 0\n state.isRepeat = false\n state.keyCode = 0\n state.repeat = 0\n this.changeVolumeSlide()\n }\n\n handler (e) {\n const {state, player} = this\n state.keyCode = e.keyCode\n state.isRepeat = e.repeat\n if (e.repeat) {\n if (player.config.disableLongPress) {\n this.handlerKeyCode(state.keyCode, false)\n } else if(state.repeat % 2 === 0) {\n this.handlerKeyCode(state.keyCode, true)\n }\n state.repeat++\n }\n }\n\n handlerKeyCode (keyCode, isLonePress) {\n const {player, state} = this\n switch (keyCode) {\n case 39:\n // 快进\n if (isLonePress) {\n state.repeat === 0 && this.changeRate()\n } else {\n this.seek(false, isLonePress)\n }\n break\n case 37:\n // 快退\n this.seek(true, isLonePress)\n break\n case 38:\n this.changeVolume(true)\n // 上\n break\n case 40:\n this.changeVolume(false)\n // 下\n break\n case 32:\n if (!isLonePress) {\n player.paused ? player.play() : player.pause()\n }\n break\n case 27:\n if (hasClass(player.root, 'xgplayer-is-cssfullscreen')) {\n player.exitCssFullscreen()\n }\n break\n default:\n //\n }\n }\n\n seek (isBack, isLongPress) {\n const {player} = this\n const keyShortcutStep = player.config.keyShortcutStep || {}\n const currentTimeStep = keyShortcutStep.currentTime || 10\n if (player.isLoading || player.isSeeking || (isLongPress && this.state.repeat % 8 > 0)) {\n return\n }\n if (isBack) {\n if (player.currentTime - currentTimeStep >= 0) {\n player.currentTime -= currentTimeStep\n } else {\n player.currentTime = 0\n }\n } else {\n if(player.maxPlayedTime && player.config.allowSeekPlayed && (player.currentTime + currentTimeStep > player.maxPlayedTime)) {\n player.currentTime = player.maxPlayedTime\n } else {\n if (player.currentTime + currentTimeStep <= player.duration) {\n player.currentTime += currentTimeStep\n } else {\n player.currentTime = player.duration + 1\n }\n }\n }\n }\n\n changeRate () {\n this.state.playbackRate = this.player.playbackRate\n this.player.playbackRate = this.player.config.keyboardRate || 5\n }\n\n changeVolumeSlide (show) {\n const {player} = this\n if (!player.controls) {\n return\n }\n if (show) {\n player.emit('focus')\n if (!hasClass(player.root, 'xgplayer-volume-active')) {\n addClass(player.root, 'xgplayer-volume-active')\n }\n } else {\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n removeClass(player.root, 'xgplayer-volume-active')\n }, 1000)\n }\n }\n\n changeVolume (isup) {\n const {player} = this\n const keyShortcutStep = player.config.keyShortcutStep || {}\n const volumeStep = keyShortcutStep.volume || 0.1\n this.changeVolumeSlide(true)\n const volume = player.volume\n if (isup && volume + volumeStep <= 1) {\n player.volume = volume + volumeStep\n } else if (!isup && volume - volumeStep >= 0) {\n player.volume = volume - volumeStep\n }\n }\n}\n\nlet keyboard = function () {\n let player = this\n player.keyboard = new Keyboard(player)\n}\n\nexport default {\n name: 'keyboard',\n method: keyboard\n}","import { hasClass } from '../utils/util'\n\nlet localPreview = function () {\n let player = this\n let root = player.root\n function onUpload (upload) {\n player.uploadFile = upload.files[0]\n let url = URL.createObjectURL(player.uploadFile)\n if (hasClass(root, 'xgplayer-nostart')) {\n player.config.url = url\n player.start()\n } else {\n player.src = url\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n }\n player.on('upload', onUpload)\n\n function onDestroy () {\n player.off('upload', onUpload)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'localPreview',\n method: localPreview\n}","let memoryPlay = function () {\n let player = this\n player.on('memoryPlayStart', (lastPlayTime) => {\n setTimeout(() => {\n console.log('memoryPlayStart', lastPlayTime, player.readyState, 11)\n player.currentTime = lastPlayTime\n },)\n })\n}\n\nexport default {\n name: 'memoryPlay',\n method: memoryPlay\n}","import { findDom, hasClass, createDom, addClass, removeClass } from '../utils/util'\nimport Draggabilly from 'draggabilly'\n\nlet miniplayer = function () {\n let player = this\n let root = player.root\n function onMiniplayerBtnClick () {\n if (hasClass(root, 'xgplayer-miniplayer-active')) {\n player.exitMiniplayer()\n } else {\n player.getMiniplayer()\n }\n }\n player.on('miniplayerBtnClick', onMiniplayerBtnClick)\n\n function onDestroy () {\n player.off('miniplayerBtnClick', onMiniplayerBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getMiniplayer = function () {\n if (hasClass(root, 'xgplayer-is-fullscreen')) {\n this.exitFullscreen(root)\n }\n if (hasClass(root, 'xgplayer-is-cssfullscreen')) {\n this.exitCssFullscreen()\n }\n if (hasClass(root, 'xgplayer-rotate-fullscreen')) {\n this.exitRotateFullscreen()\n }\n // let ro = this.root.getBoundingClientRect()\n // let Top = ro.top\n // let Left = ro.left\n let dragLay = createDom('xg-miniplayer-lay', '<div></div>', {}, 'xgplayer-miniplayer-lay')\n this.root.appendChild(dragLay)\n let dragHandle = createDom('xg-miniplayer-drag', `<div class=\"drag-handle\"><span>${this.lang.MINIPLAYER_DRAG}</span></div>`, {tabindex: 9}, 'xgplayer-miniplayer-drag')\n this.root.appendChild(dragHandle)\n // eslint-disable-next-line no-unused-vars\n let draggie = new Draggabilly('.xgplayer', {\n handle: '.drag-handle'\n })\n addClass(this.root, 'xgplayer-miniplayer-active')\n this.root.style.right = 0\n this.root.style.bottom = '200px'\n this.root.style.top = ''\n this.root.style.left = ''\n this.root.style.width = '320px'\n this.root.style.height = '180px'\n if (this.config.miniplayerConfig) {\n if (this.config.miniplayerConfig.top !== undefined) {\n this.root.style.top = this.config.miniplayerConfig.top + 'px'\n this.root.style.bottom = ''\n }\n if (this.config.miniplayerConfig.bottom !== undefined) {\n this.root.style.bottom = this.config.miniplayerConfig.bottom + 'px'\n }\n if (this.config.miniplayerConfig.left !== undefined) {\n this.root.style.left = this.config.miniplayerConfig.left + 'px'\n this.root.style.right = ''\n }\n if (this.config.miniplayerConfig.right !== undefined) {\n this.root.style.right = this.config.miniplayerConfig.right + 'px'\n }\n if (this.config.miniplayerConfig.width !== undefined) {\n this.root.style.width = this.config.miniplayerConfig.width + 'px'\n }\n if (this.config.miniplayerConfig.height !== undefined) {\n this.root.style.height = this.config.miniplayerConfig.height + 'px'\n }\n }\n if (this.config.fluid) {\n this.root.style['padding-top'] = ''\n }\n let player = this;\n ['click', 'touchend'].forEach(item => {\n dragLay.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.exitMiniplayer()\n // player.root.style.top = `${Top}px`\n // player.root.style.left = `${Left}px`\n })\n })\n }\n\n player.exitMiniplayer = function () {\n removeClass(this.root, 'xgplayer-miniplayer-active')\n this.root.style.right = ''\n this.root.style.bottom = ''\n this.root.style.top = ''\n this.root.style.left = ''\n if (this.config.fluid) {\n this.root.style['width'] = '100%'\n this.root.style['height'] = '0'\n this.root.style['padding-top'] = `${this.config.height * 100 / this.config.width}%`\n } else {\n if (this.config.width) {\n if (typeof this.config.width !== 'number') {\n this.root.style.width = this.config.width\n } else {\n this.root.style.width = `${this.config.width}px`\n }\n }\n if (this.config.height) {\n if (typeof this.config.height !== 'number') {\n this.root.style.height = this.config.height\n } else {\n this.root.style.height = `${this.config.height}px`\n }\n }\n }\n\n let dragLay = findDom(this.root, '.xgplayer-miniplayer-lay')\n if (dragLay && dragLay.parentNode) {\n dragLay.parentNode.removeChild(dragLay)\n }\n let dragHandle = findDom(this.root, '.xgplayer-miniplayer-drag')\n if (dragHandle && dragHandle.parentNode) {\n dragHandle.parentNode.removeChild(dragHandle)\n }\n }\n}\n\nexport default {\n name: 'miniplayer',\n method: miniplayer\n}","\nimport { PresentationMode, checkWebkitSetPresentationMode, addClass, removeClass} from '../utils/util'\n\nlet pip = function () {\n let player = this\n function onPipBtnClick () {\n if (player.video !== document.pictureInPictureElement) {\n player.video.requestPictureInPicture()\n } else {\n document.exitPictureInPicture()\n }\n }\n player.on('pipBtnClick', onPipBtnClick)\n\n const onWebkitpresentationmodechanged = (e) => {\n const mode = player.video.webkitPresentationMode\n this.pMode = mode\n if (mode === PresentationMode.PIP) {\n // 进入pip模式\n player.emit('requestPictureInPicture', e.pictureInPictureWindow)\n } else if (mode === PresentationMode.INLINE) {\n // 退出pip,进去inline模式\n player.emit('exitPictureInPicture')\n }\n }\n\n player.video.addEventListener('enterpictureinpicture', function (pipWindow) {\n addClass(player.root, 'xgplayer-pip-active')\n player.emit('requestPictureInPicture', pipWindow)\n })\n\n player.video.addEventListener('leavepictureinpicture', function () {\n removeClass(player.root, 'xgplayer-pip-active')\n player.emit('exitPictureInPicture')\n })\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.addEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n function onDestroy () {\n player.off('pipBtnClick', onPipBtnClick)\n player.off('destroy', onDestroy)\n checkWebkitSetPresentationMode(player.video) &&\n player.video.removeEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'pip',\n method: pip\n}\n","let playNext = function () {\n let player = this\n let nextBtn = player.config.playNext\n player.currentVideoIndex = -1\n\n function onPlayNextBtnClick () {\n if (player.currentVideoIndex + 1 < nextBtn.urlList.length) {\n player.currentVideoIndex++\n player.video.autoplay = true\n player.src = nextBtn.urlList[player.currentVideoIndex]\n player.emit('playerNext', player.currentVideoIndex + 1)\n if (player.currentVideoIndex + 1 === nextBtn.urlList.length) {\n player.emit('urlListEnd')\n }\n }\n }\n player.on('playNextBtnClick', onPlayNextBtnClick)\n\n function onDestroy () {\n player.off('playNextBtnClick', onPlayNextBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'playNext',\n method: playNext\n}","import { removeClass } from '../utils/util'\n\nlet reload = function () {\n let player = this\n let reloadConfig = player.config.reload\n if (!reloadConfig) { return }\n\n function onReloadBtnClick () {\n removeClass(player.root, 'xgplayer-is-error')\n player.src = player.config.url\n }\n player.on('reloadBtnClick', onReloadBtnClick)\n\n function onDestroy () {\n player.off('reloadBtnClick', onReloadBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'reload',\n method: reload\n}","let rotate = function () {\n let player = this\n let rotateConfig = player.config.rotate\n if (!rotateConfig) { return }\n\n function onRotateBtnClick () {\n player.rotate(rotateConfig.clockwise, rotateConfig.innerRotate)\n }\n player.on('rotateBtnClick', onRotateBtnClick)\n\n function onDestroy () {\n player.off('rotateBtnClick', onRotateBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.updateRotateDeg = function () {\n let player = this;\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n\n let width = player.root.offsetWidth\n let height = player.root.offsetHeight\n let targetWidth = player.video.videoWidth\n let targetHeight = player.video.videoHeight\n\n if (!player.config.rotate.innerRotate && player.config.rotate.controlsFix) {\n player.root.style.width = height + 'px'\n player.root.style.height = width + 'px'\n }\n\n let scale\n if (player.rotateDeg === 0.25 || player.rotateDeg === 0.75) {\n if (player.config.rotate.innerRotate) {\n if ((targetWidth / targetHeight) > (height / width)) { // 旋转后纵向撑满\n let videoWidth = 0\n if ((targetHeight / targetWidth) > (height / width)) { // 旋转前是纵向撑满\n videoWidth = height * targetWidth / targetHeight\n } else { // 旋转前是横向撑满\n videoWidth = width\n }\n scale = height / videoWidth\n } else { // 旋转后横向撑满\n let videoHeight = 0\n if ((targetHeight / targetWidth) > (height / width)) { // 旋转前是纵向撑满\n videoHeight = height\n } else { // 旋转前是横向撑满\n videoHeight = width * targetHeight / targetWidth\n }\n scale = width / videoHeight\n }\n } else {\n if (width >= height) {\n scale = width / height\n } else {\n scale = height / width\n }\n }\n scale = Number(scale.toFixed(5))\n } else {\n scale = 1\n }\n\n if (player.config.rotate.innerRotate) {\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n if (player.config.rotate.controlsFix) {\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n player.root.style.transformOrigin = 'center center'\n player.root.style.transform = `rotate(${player.rotateDeg}turn) scale(${1})`\n player.root.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${1})`\n }\n }\n }\n\n player.rotate = function (clockwise = false, innerRotate = true, times = 1) {\n let player = this;\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n let factor = clockwise ? 1 : -1\n\n player.rotateDeg = (player.rotateDeg + 1 + factor * 0.25 * times) % 1\n this.updateRotateDeg()\n\n player.emit('rotate', player.rotateDeg * 360)\n }\n}\n\nexport default {\n name: 'rotate',\n method: rotate\n}","let screenShot = function () {\n let player = this\n let screenShotOptions = player.config.screenShot\n let callBack = null\n if (!screenShotOptions) {\n return\n }\n\n player.video.setAttribute('crossOrigin', 'anonymous')\n\n let encoderOptions = 0.92\n\n if (screenShotOptions.quality || screenShotOptions.quality === 0) {\n encoderOptions = screenShotOptions.quality\n }\n let type = screenShotOptions.type === undefined ? 'image/png' : screenShotOptions.type\n let format = screenShotOptions.format === undefined ? '.png' : screenShotOptions.format\n\n let canvas = document.createElement('canvas')\n let canvasCtx = canvas.getContext('2d')\n let img = new Image()\n\n canvas.width = this.config.width || 600\n canvas.height = this.config.height || 337.5 \n let saveScreenShot = function (data, filename) {\n let saveLink = document.createElement('a')\n saveLink.href = data\n saveLink.download = filename\n let event = document.createEvent('MouseEvents')\n event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)\n saveLink.dispatchEvent(event)\n }\n\n player.screenShot = function (save = true) {\n save = screenShotOptions.saveImg === undefined ? save : screenShotOptions.saveImg\n canvas.width = player.video.videoWidth || 600\n canvas.height = player.video.videoHeight || 337.5\n callBack = screenShotOptions.callBack\n img.onload = (function () {\n canvasCtx.drawImage(player.video, 0, 0, canvas.width, canvas.height)\n img.src = canvas.toDataURL(type, encoderOptions).replace(type, 'image/octet-stream')\n let screenShotImg = img.src.replace(/^data:image\\/[^;]+/, 'data:application/octet-stream')\n let saveFileName = screenShotOptions.fileName || player.lang.SCREENSHOT\n\n player.emit('screenShot', screenShotImg)\n if (save && callBack) {\n callBack(screenShotImg, saveFileName, format)\n } else {\n save && saveScreenShot(screenShotImg, saveFileName + format)\n }\n })()\n }\n player.on('screenShotBtnClick', player.screenShot)\n\n function onDestroy () {\n player.off('screenShotBtnClick', player.screenShot)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'screenShot',\n method: screenShot\n}","import Errors from '../error'\n\nfunction stallCheck () {\n const player = this\n if(!player.config.enableStallCheck) return;\n let lastCurrentTime = 0;\n let stallFlag, stallCheckTimer, progressTimer;\n player.once('complete', () => {\n progressTimer = setInterval(() => {\n if (player.currentTime - (lastCurrentTime || 0) > 0.1 || player.paused) {\n if (stallFlag === 1 || stallFlag === 2) {\n stallFlag = 0;\n clearTimeout(stallCheckTimer);\n stallCheckTimer = null;\n }\n } else {\n if (!stallFlag) {\n stallFlag = 1;\n stallCheckTimer = setTimeout(() => {\n if (stallFlag === 1) {\n stallFlag = 2;\n player.emit('error', new Errors('STALL'));\n }\n stallCheckTimer = null;\n }, 20000);\n }\n }\n lastCurrentTime = player.currentTime;\n }, 1000);\n })\n}\n \nexport default {\n name: 'stallCheck',\n method: stallCheck\n}\n\n\n","import { addClass, removeClass, event } from '../utils/util'\nimport sniffer from '../utils/sniffer'\n\nlet volume = function () {\n let player = this\n let root = player.root\n let container, slider, bar, selected\n function onCanplay () {\n // player.volume = sniffer.device === 'mobile' ? 1 : player.config.volume\n if(!player.controls) return\n player.volume = player.config.volume\n container = player.controls.querySelector('.xgplayer-volume')\n if(!container) return\n slider = container.querySelector('.xgplayer-slider')\n bar = container.querySelector('.xgplayer-bar')\n selected = container.querySelector('.xgplayer-drag')\n if (sniffer.device === 'mobile') {\n if(player.volume === 0) {\n player.video.muted = true\n }\n onVolumeChange()\n }\n }\n player.once('canplay', onCanplay)\n\n function onVolumeBarClick (e) {\n if(!slider) return\n player.video.muted = false\n slider.focus()\n event(e)\n\n let barRect = bar.getBoundingClientRect()\n let pos = {x: e.clientX, y: e.clientY}\n let height = selected.getBoundingClientRect().height\n let isMove = false\n let onMove = function (e) {\n e.preventDefault()\n e.stopPropagation()\n event(e)\n isMove = true\n let w = height - e.clientY + pos.y\n let now = w / barRect.height\n selected.style.height = `${w}px`\n player.volume = Math.max(Math.min(now, 1), 0)\n }\n let onUp = function (e) {\n e.preventDefault()\n e.stopPropagation()\n event(e)\n window.removeEventListener('mousemove', onMove)\n window.removeEventListener('touchmove', onMove)\n window.removeEventListener('mouseup', onUp)\n window.removeEventListener('touchend', onUp)\n\n if (!isMove) {\n let w = barRect.height - (e.clientY - barRect.top)\n let now = w / barRect.height\n selected.style.height = `${w}px`\n if (now <= 0) {\n if (player.volume > 0) {\n selected.volume = player.video.volume\n } else {\n now = selected.volume\n }\n }\n player.volume = Math.max(Math.min(now, 1), 0)\n }\n slider.volume = player.volume\n isMove = false\n }\n window.addEventListener('mousemove', onMove)\n window.addEventListener('touchmove', onMove)\n window.addEventListener('mouseup', onUp)\n window.addEventListener('touchend', onUp)\n return false\n }\n player.on('volumeBarClick', onVolumeBarClick)\n\n function onVolumeIconClick () {\n if (sniffer.device === 'mobile') {\n if (player.video.muted) {\n player.video.muted = false\n player.emit('unmute')\n player.volume = 1\n } else {\n player.video.muted = true\n player.emit('mute')\n player.volume = 0\n }\n } else {\n if(!slider) return\n player.video.muted = false\n if (player.volume < 0.1) {\n if (slider.volume < 0.1) {\n player.volume = 0.6\n } else {\n player.volume = slider.volume\n }\n player.emit('unmute')\n } else {\n player.volume = 0\n player.emit('mute')\n }\n }\n // onVolumeChange ()\n }\n player.on('volumeIconClick', onVolumeIconClick)\n\n function onVolumeIconEnter () {\n addClass(root, 'xgplayer-volume-active')\n if (container) {\n container.focus()\n }\n }\n player.on('volumeIconEnter', onVolumeIconEnter)\n\n function onVolumeIconLeave () {\n removeClass(root, 'xgplayer-volume-active')\n }\n player.on('volumeIconLeave', onVolumeIconLeave)\n\n let _changeTimer = null\n function onVolumeChange () {\n if (_changeTimer) {\n clearTimeout(_changeTimer)\n }\n _changeTimer = setTimeout(() => {\n if (sniffer.device === 'mobile') {\n removeClass(root, 'xgplayer-volume-muted')\n removeClass(root, 'xgplayer-volume-large')\n if (player.video.muted || player.video.defaultMuted) {\n if (!player.video.muted) {\n player.video.muted = true\n }\n player.video.defaultMuted = false\n addClass(root, 'xgplayer-volume-muted')\n } else {\n addClass(root, 'xgplayer-volume-large')\n }\n } else {\n removeClass(root, 'xgplayer-volume-muted')\n removeClass(root, 'xgplayer-volume-small')\n removeClass(root, 'xgplayer-volume-large')\n if (player.volume === 0 || player.muted) {\n addClass(root, 'xgplayer-volume-muted')\n } else if (player.volume < 0.5) {\n addClass(root, 'xgplayer-volume-small')\n } else {\n addClass(root, 'xgplayer-volume-large')\n }\n if (!bar) return\n let containerHeight = bar.getBoundingClientRect().height || 76\n selected.style.height = `${player.volume * containerHeight}px`\n }\n }, 50)\n }\n player.on('volumechange', onVolumeChange)\n\n function onDestroy () {\n player.off('canplay', onCanplay)\n player.off('volumeBarClick', onVolumeBarClick)\n player.off('volumeIconClick', onVolumeIconClick)\n player.off('volumeIconEnter', onVolumeIconEnter)\n player.off('volumeIconLeave', onVolumeIconLeave)\n player.off('volumechange', onVolumeChange)\n player.off('destroy', onDestroy)\n if (_changeTimer) {\n clearTimeout(_changeTimer);\n _changeTimer = null;\n }\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'volume',\n method: volume\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj2) {\n return typeof obj2;\n } : function(obj2) {\n return obj2 && \"function\" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n }, _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass)\n _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct)\n return false;\n if (Reflect.construct.sham)\n return false;\n if (typeof Proxy === \"function\")\n return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null)\n break;\n }\n return object;\n}\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get2(target, property, receiver) {\n var base = _superPropBase(target, property);\n if (!base)\n return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null)\n return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== void 0) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\")\n return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nexport { _assertThisInitialized as assertThisInitialized, _classCallCheck as classCallCheck, _createClass as createClass, _createSuper as createSuper, _defineProperty as defineProperty, _get as get, _getPrototypeOf as getPrototypeOf, _inherits as inherits, _isNativeReflectConstruct as isNativeReflectConstruct, _objectSpread2 as objectSpread2, _possibleConstructorReturn as possibleConstructorReturn, _setPrototypeOf as setPrototypeOf, _superPropBase as superPropBase, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _typeof as typeof };\n","import { createClass as _createClass, classCallCheck as _classCallCheck } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nvar VTT_CHECK = /^WEBVTT/;\nvar VTT_STYLE = /^STYLE+$/;\nvar VTT_CUE = /^\\:\\:cue/;\nvar VTT_CUEND = /^}+$/;\nvar ASS_CHECK = /^\\[Script Info\\].*/;\nvar TIME_REGEX_LIST = [/[0-9]{1,3}:[0-9]{2}:[0-9]{2}\\.[0-9]{1,3}-->[0-9]{1,3}:[0-9]{2}:[0-9]{2}\\.[0-9]{1,3}/, /[0-9]{1,2}:[0-9]{2}\\.[0-9]{1,3}-->[0-9]{1,2}:[0-9]{2}\\.[0-9]{1,3}/, /[0-9]{1,2}\\.[0-9]{1,3}-->[0-9]{1,2}\\.[0-9]{1,3}/];\nvar MAX_COUNT = 50;\nvar ASS_FORMAT = /^Format:\\s/;\nvar ASS_STYLE = /^Style:\\s/;\nvar ASS_DIALOGUE = /^Dialogue:\\s/;\nfunction getSecond(arr) {\n var len = arr.length;\n if (len === 3) {\n return ((Number(arr[0]) * 60 + Number(arr[1])) * 60 * 1e3 + Number(arr[2]) * 1e3) / 1e3;\n } else if (len === 2) {\n return (Number(arr[0]) * 60 * 1e3 + Number(arr[1]) * 1e3) / 1e3;\n } else {\n return Number(arr[0]);\n }\n}\nfunction isNumber(str) {\n return /^(\\-|\\+)?\\d+(\\.\\d+)?$/.test(str);\n}\nfunction htmlEncodeAll(e) {\n return e;\n}\nfunction getByIndex(i, arr) {\n if (i >= 0 && i < arr.length) {\n return arr[i];\n }\n return \"\";\n}\nvar SubTitleParser = /* @__PURE__ */ function() {\n function SubTitleParser2() {\n _classCallCheck(this, SubTitleParser2);\n }\n _createClass(SubTitleParser2, null, [{\n key: \"parseJson\",\n value: function parseJson(list) {\n var ret = [];\n var count = 0;\n for (var i = 0; i < list.length; i++) {\n if (count >= MAX_COUNT) {\n count = 0;\n }\n if (count === 0) {\n var item = {\n start: list[i].start,\n list: [list[i]],\n end: list[i].end\n };\n ret.push(item);\n } else {\n ret[ret.length - 1].list.push(list[i]);\n ret[ret.length - 1].end = list[i].end;\n }\n count++;\n }\n return ret;\n }\n }, {\n key: \"parse\",\n value: function parse(str, fun) {\n var format = SubTitleParser2.checkFormat(str);\n if (!format) {\n fun({\n format\n });\n }\n try {\n var ret = [];\n if (format === \"ass\") {\n ret = SubTitleParser2.parseASS(str);\n } else if (format === \"vtt\") {\n ret = SubTitleParser2.parseVTT(str);\n }\n fun({\n format,\n list: ret.list,\n styles: ret.styles\n });\n } catch (error) {\n console.error(error);\n fun({\n format\n }, error);\n }\n }\n }, {\n key: \"parseASSItem\",\n value: function parseASSItem() {\n var str = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"\";\n var mode = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];\n var values = str.split(\",\");\n var item = {};\n var text = \"\";\n try {\n var len = values.length - mode.length;\n if (len > 0) {\n text = values.splice(mode.length - 1, len + 1).join(\",\") + \"\";\n } else {\n text = values[values.length - 1] + \"\";\n }\n text = text.replace(/\\\\n+/g, \"\");\n text = htmlEncodeAll(text);\n values[mode.length - 1] = text;\n mode.map(function(key, index) {\n if (key === \"end\" || key === \"start\") {\n item[key] = getSecond(values[index].split(\":\"));\n } else if (key === \"text\") {\n item[key] = [values[index]];\n } else if (key === \"layer\") {\n item[key] = [values[index]];\n item.textTag = [values[index]];\n } else if (key === \"style\") {\n item[key] = [values[index]];\n } else {\n item[key] = Number(values[index]) ? Number(values[index]) : values[index];\n }\n });\n return item;\n } catch (error) {\n console.error(error);\n return {};\n }\n }\n }, {\n key: \"parseASS\",\n value: function parseASS(str) {\n var arr = str.split(\"\\n\");\n var retData = [];\n var i = 0;\n var groupCount = 0;\n var styles = [];\n var mode = [];\n var lastSubTitle = null;\n while (i < arr.length) {\n if (ASS_FORMAT.test(arr[i])) {\n mode = arr[i].replace(ASS_FORMAT, \"\").replace(/\\s+/g, \"\").split(\",\");\n mode = mode.map(function(item) {\n return item.toLocaleLowerCase();\n });\n } else if (ASS_STYLE.test(arr[i])) {\n styles.push(arr[i].replace(ASS_STYLE, \"\").replace(/\\s+/g, \"\"));\n } else if (ASS_DIALOGUE.test(arr[i])) {\n var subTitle = SubTitleParser2.parseASSItem(arr[i].replace(ASS_DIALOGUE, \"\"), mode);\n if (!lastSubTitle || !(subTitle.start === lastSubTitle.start && subTitle.end === lastSubTitle.end)) {\n lastSubTitle = subTitle;\n var group = null;\n if (groupCount % MAX_COUNT === 0) {\n group = {\n start: lastSubTitle.start,\n end: lastSubTitle.end,\n list: []\n };\n group.list.push(lastSubTitle);\n retData.push(group);\n } else {\n group = retData[retData.length - 1];\n group.end = lastSubTitle.end;\n group.list.push(lastSubTitle);\n }\n groupCount++;\n } else {\n try {\n var _lastSubTitle = lastSubTitle, text = _lastSubTitle.text, textTag = _lastSubTitle.textTag, style = _lastSubTitle.style;\n text.push(subTitle.text[0]);\n textTag.push(subTitle.textTag[0]);\n style.push(subTitle.style[0]);\n } catch (error) {\n console.error(error);\n }\n }\n }\n i++;\n }\n return {\n list: retData,\n style: {}\n };\n }\n }, {\n key: \"parseVTTStyle\",\n value: function parseVTTStyle(str, style) {\n var arr = str.split(\":\");\n if (arr.length > 1) {\n var keyArr = arr[0].trim().split(\"-\");\n var key = \"\";\n if (keyArr.length > 1) {\n keyArr.map(function(item, index) {\n key += index === 0 ? item : item.charAt(0).toUpperCase() + item.slice(1);\n });\n } else {\n key = keyArr[0];\n }\n style[key] = arr[1].trim().replace(/;$/, \"\");\n }\n return style;\n }\n }, {\n key: \"parseVTT\",\n value: function parseVTT(str) {\n str = str.replace(VTT_CHECK, \"\");\n var arr = str.split(\"\\n\");\n var retData = [];\n var i = 0;\n var groupCount = 0;\n var lastSubTitle = null;\n var isLastSpace = false;\n var isCueStart = false;\n var styleInfo = null;\n var styleHeader = null;\n var styles = [];\n while (i < arr.length) {\n var _str = getByIndex(i, arr).trim();\n if (!_str || isLastSpace && isNumber(_str)) {\n isLastSpace = !_str;\n } else if (VTT_CUE.test(_str) && VTT_STYLE.test(getByIndex(i - 1, arr).trim())) {\n isCueStart = true;\n var cueMatch = /\\((.+?)\\)/g.exec(_str);\n if (!cueMatch) {\n styleHeader = \"\";\n } else {\n styleHeader = cueMatch[1];\n }\n styleInfo = \"\";\n } else if (isCueStart) {\n if (VTT_CUEND.test(_str)) {\n styles.push({\n key: styleHeader,\n style: styleInfo\n });\n styleInfo = null;\n styleHeader = null;\n isCueStart = false;\n } else {\n styleInfo += _str;\n }\n } else if (_str) {\n isLastSpace = false;\n var time = this.checkIsTime(arr[i]);\n if (time) {\n var subTitle = this.parseVttTime(time);\n if (!lastSubTitle || !(subTitle.start === lastSubTitle.start && subTitle.end === lastSubTitle.end)) {\n lastSubTitle = subTitle;\n lastSubTitle.text = [];\n lastSubTitle.textTag = [];\n var group = null;\n if (groupCount % MAX_COUNT === 0) {\n group = {\n start: lastSubTitle.start,\n end: lastSubTitle.end,\n list: []\n };\n group.list.push(lastSubTitle);\n retData.push(group);\n } else {\n group = retData[retData.length - 1];\n group.end = lastSubTitle.end;\n group.list.push(lastSubTitle);\n }\n groupCount++;\n }\n } else {\n if (lastSubTitle) {\n var _lastSubTitle2 = lastSubTitle, text = _lastSubTitle2.text, textTag = _lastSubTitle2.textTag;\n var ret = this.parseVttText(arr[i]);\n text.push(ret.text);\n textTag.push(ret.tag);\n }\n }\n isLastSpace = false;\n }\n i++;\n continue;\n }\n return {\n list: retData,\n styles\n };\n }\n }, {\n key: \"checkIsTime\",\n value: function checkIsTime(str) {\n str = str.replace(/\\s+/g, \"\");\n var i = 0;\n var match = null;\n while (i < TIME_REGEX_LIST.length) {\n match = TIME_REGEX_LIST[i].exec(str);\n if (match) {\n break;\n }\n i++;\n }\n return match ? match[0] : null;\n }\n }, {\n key: \"parseVttText\",\n value: function parseVttText(text) {\n var langMatch = /^(<?.+?>)/g.exec(text);\n var retText = \"\";\n var tag = \"default\";\n if (langMatch) {\n tag = langMatch[0].replace(/\\<|\\>|\\&/g, \"\");\n var newReg = RegExp(\"^<\".concat(tag, \">(([\\\\s\\\\S])*?)</\").concat(tag, \">$\"));\n var textMatch = newReg.exec(text);\n if (textMatch) {\n retText = textMatch[1];\n } else {\n retText = text;\n tag = \"\";\n }\n } else {\n retText = text;\n }\n var tagsReg = /<(\\w+).(\\w+)>/g;\n var re = tagsReg.exec(retText);\n while (re && re.length > 2) {\n retText = retText.replace(re[0], \"<\".concat(re[1], ' class=\"').concat(re[2], '\">'));\n re = tagsReg.exec(retText);\n }\n return {\n tag,\n text: htmlEncodeAll(retText.replace(/\\\\n+/g, \"<br/>\"))\n };\n }\n }, {\n key: \"parseVttTime\",\n value: function parseVttTime(str) {\n var arr = str.split(\"-->\");\n var start;\n var end = 0;\n if (arr.length === 2) {\n var aArr = arr[0].split(\":\");\n var bArr = arr[1].split(\":\");\n start = getSecond(aArr);\n end = getSecond(bArr);\n }\n return {\n start,\n end,\n time: str\n };\n }\n }, {\n key: \"isVTT\",\n value: function isVTT(str) {\n return VTT_CHECK.test(str);\n }\n }, {\n key: \"isASS\",\n value: function isASS(str) {\n return ASS_CHECK.test(str);\n }\n }, {\n key: \"checkFormat\",\n value: function checkFormat(str) {\n if (!str) {\n return null;\n }\n if (VTT_CHECK.test(str)) {\n return \"vtt\";\n } else if (ASS_CHECK.test(str)) {\n return \"ass\";\n }\n return null;\n }\n }]);\n return SubTitleParser2;\n}();\nexport { SubTitleParser as default };\n","var ERROR = [{\n code: 0,\n msg: \"SUCCESS\"\n}, {\n code: 1,\n msg: \"LOAD_ERROR\"\n}, {\n code: 2,\n msg: \"PARSER_ERROR\"\n}, {\n code: 3,\n msg: \"FORMAT_NOT_SUPPORTED\"\n}, {\n code: 4,\n msg: \"ID_OR_LANGUAGE_NOT_EXIST\"\n}, {\n code: 5,\n msg: \"PARAMETERS_ERROR\"\n}, {\n code: 6,\n msg: \"ABORT\"\n}, {\n code: 7,\n msg: \"UNKNOWN\"\n}, {\n code: 8,\n msg: \"DATA_ERROR:subtitle.url is null\"\n}, {\n code: 9,\n msg: \"DATA_ERROR:subtitle.url length is 0\"\n}];\nfunction _ERROR(code) {\n var error = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var ret = {\n code: ERROR[code].code,\n msg: ERROR[code].msg\n };\n Object.keys(error).map(function(key) {\n ret[key] = error[key];\n });\n return ret;\n}\nexport { _ERROR };\n","import { createClass as _createClass, classCallCheck as _classCallCheck } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nvar XHR = /* @__PURE__ */ _createClass(function XHR2() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, url = _ref.url, _ref$method = _ref.method, method = _ref$method === void 0 ? \"GET\" : _ref$method, _ref$type = _ref.type, type = _ref$type === void 0 ? \"arraybuffer\" : _ref$type, _ref$timeout = _ref.timeout, timeout = _ref$timeout === void 0 ? 1e4 : _ref$timeout, _ref$data = _ref.data, data = _ref$data === void 0 ? {} : _ref$data;\n var context = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n _classCallCheck(this, XHR2);\n return new Promise(function(resolve, reject) {\n var R = new window.XMLHttpRequest();\n var _method = method.toUpperCase();\n var _data = [];\n if (type) {\n R.responseType = type;\n }\n if (timeout) {\n R.timeout = timeout;\n }\n Object.keys(data).forEach(function(k) {\n _data.push(\"k=\".concat(data[k]));\n });\n R.onload = function() {\n if (R.status === 200 || R.status === 206) {\n resolve({\n context,\n res: R\n });\n } else {\n reject(new Error({\n context,\n res: R,\n type: \"error\"\n }));\n }\n };\n R.onerror = function(e) {\n reject(new Error({\n context,\n res: R,\n type: \"error\"\n }));\n };\n R.ontimeout = function(e) {\n reject(new Error({\n context,\n res: R,\n type: \"error\"\n }));\n };\n R.onabort = function() {\n reject(new Error({\n context,\n res: R,\n type: \"error\"\n }));\n };\n if (_method === \"GET\") {\n R.open(_method, \"\".concat(url));\n R.send();\n } else if (_method === \"post\") {\n R.open(_method, url);\n R.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n R.send(_data.join(\"&\"));\n } else {\n throw new Error(\"xhr \".concat(_method, \" is not supported\"));\n }\n });\n});\nexport { XHR as default };\n","import { createClass as _createClass, classCallCheck as _classCallCheck } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nvar ProxyPromise = /* @__PURE__ */ function() {\n function ProxyPromise2() {\n _classCallCheck(this, ProxyPromise2);\n var resolvePromise;\n var rejectPromise;\n var promise = new Promise(function(resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var publicPromise = promise;\n publicPromise.resolve = function(data) {\n resolvePromise(data);\n publicPromise.state = \"fulfilled\";\n };\n publicPromise.reject = function(error) {\n rejectPromise(error);\n publicPromise.state = \"rejected\";\n publicPromise.isBreak = error === \"DESTROYED\";\n };\n publicPromise.state = \"pending\";\n return publicPromise;\n }\n _createClass(ProxyPromise2, [{\n key: \"resolve\",\n value: function resolve(value) {\n }\n }, {\n key: \"reject\",\n value: function reject(reason) {\n }\n }]);\n return ProxyPromise2;\n}();\nexport { ProxyPromise as default };\n","import { typeof as _typeof, objectSpread2 as _objectSpread2 } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nimport SubTitleParser from \"./parser.js\";\nimport { _ERROR } from \"./error.js\";\nimport XHR from \"./xhr.js\";\nimport ProxyPromise from \"./proxyPromise.js\";\nfunction hasClass(el, className) {\n if (!el) {\n return false;\n }\n if (el.classList) {\n return Array.prototype.some.call(el.classList, function(item) {\n return item === className;\n });\n } else {\n var orgClassName = el.className && _typeof(el.className) === \"object\" ? el.getAttribute(\"class\") : el.className;\n return orgClassName && !!orgClassName.match(new RegExp(\"(\\\\s|^)\" + className + \"(\\\\s|$)\"));\n }\n}\nfunction addClass(el, className) {\n if (!el) {\n return;\n }\n if (el.classList) {\n className.replace(/(^\\s+|\\s+$)/g, \"\").split(/\\s+/g).forEach(function(item) {\n item && el.classList.add(item);\n });\n } else if (!hasClass(el, className)) {\n if (el.className && _typeof(el.className) === \"object\") {\n el.setAttribute(\"class\", el.getAttribute(\"class\") + \" \" + className);\n } else {\n el.className += \" \" + className;\n }\n }\n}\nfunction removeClass(el, className) {\n if (!el) {\n return;\n }\n if (el.classList) {\n className.split(/\\s+/g).forEach(function(item) {\n el.classList.remove(item);\n });\n } else if (hasClass(el, className)) {\n className.split(/\\s+/g).forEach(function(item) {\n var reg = new RegExp(\"(\\\\s|^)\" + item + \"(\\\\s|$)\");\n if (el.className && _typeof(el.className) === \"object\") {\n el.setAttribute(\"class\", el.getAttribute(\"class\").replace(reg, \" \"));\n } else {\n el.className = el.className.replace(reg, \" \");\n }\n });\n }\n}\nfunction findIndexByTime(currentTime, list, index) {\n var len = list.length;\n if (len < 1) {\n return -1;\n }\n index = index < 0 ? 0 : index >= len ? len - 1 : index;\n if (list[index].start <= currentTime && currentTime < list[index].end) {\n return index;\n } else {\n var i = list[index].end <= currentTime ? index + 1 : 0;\n for (; i < len; i++) {\n if (list[i].start <= currentTime && currentTime < list[i].end) {\n return i;\n } else if (currentTime > list[i].end && i + 1 < len && currentTime < list[i + 1].start) {\n return -1;\n } else if (currentTime > list[i].end && i + 1 >= len) {\n return -1;\n }\n }\n return -1;\n }\n}\nfunction findCIndexByTime(currentTime, list, index) {\n var len = list.length;\n if (len < 1) {\n return [];\n }\n index = index < 0 ? 0 : index >= len ? len - 1 : index;\n var ids = [];\n if (index < len) {\n var i = list[index].end <= currentTime ? index : 0;\n for (; i < len; i++) {\n if (list[i].start <= currentTime && currentTime < list[i].end) {\n ids.push(i);\n }\n if (currentTime < list[i].start) {\n break;\n }\n }\n }\n return ids;\n}\nfunction getItemsByIndex(list, gid, cids) {\n if (list.length === 0 || gid < 0 || gid > list.length - 1) {\n return [];\n }\n var gList = list[gid].list;\n if (cids.length === 0) {\n return [];\n }\n var ret = gList.splice(cids[0], cids.length);\n if (gid > 0) {\n list.splice(0, gid);\n }\n if (gList.length === 0) {\n list.splice(0, 1);\n }\n return ret;\n}\nfunction typeOf(obj) {\n return Object.prototype.toString.call(obj).match(/([^\\s.*]+)(?=]$)/g)[0];\n}\nfunction createDom() {\n var el = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"div\";\n var tpl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\";\n var attrs = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var cname = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : \"\";\n var dom = document.createElement(el);\n dom.className = cname;\n dom.innerHTML = tpl;\n Object.keys(attrs).forEach(function(item) {\n var key = item;\n var value = attrs[item];\n if (el === \"video\" || el === \"audio\" || el === \"live-video\") {\n if (value) {\n dom.setAttribute(key, value);\n }\n } else {\n dom.setAttribute(key, value);\n }\n });\n return dom;\n}\nfunction isMobile() {\n var ua = navigator.userAgent;\n var isWindowsPhone = /(?:Windows Phone)/.test(ua);\n var isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone;\n var isAndroid = /(?:Android)/.test(ua);\n var isFireFox = /(?:Firefox)/.test(ua);\n var isTablet = /(?:iPad|PlayBook)/.test(ua) || isAndroid && !/(?:Mobile)/.test(ua) || isFireFox && /(?:Tablet)/.test(ua);\n var isPhone = /(?:iPhone)/.test(ua) && !isTablet;\n return isPhone || isAndroid || isSymbian || isTablet;\n}\nfunction addCSS(styles) {\n var preTag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\";\n var cssText = \"\";\n styles.map(function(item) {\n cssText += \" \".concat(preTag, \" \").concat(item.key, \" {\").concat(item.style, \"}\");\n });\n var styleTag = document.createElement(\"style\");\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n styleTag.type = \"text/css\";\n styleTag.id = \"ssss\";\n if (styleTag.styleSheet) {\n var func = function func2() {\n try {\n styleTag.styleSheet.cssText = cssText;\n } catch (e) {\n }\n };\n if (styleTag.styleSheet.disabled) {\n setTimeout(func, 10);\n } else {\n func();\n }\n } else {\n var textNode = document.createTextNode(cssText);\n styleTag.appendChild(textNode);\n }\n head.appendChild(styleTag);\n}\nfunction parse(content, format, promise) {\n if (!promise) {\n promise = new ProxyPromise();\n }\n if (format === \"json\") {\n var list = SubTitleParser.parseJson(content);\n promise.resolve({\n list,\n format: \"json\"\n });\n } else if (format === \"string\") {\n SubTitleParser.parse(content, function(data, error) {\n if (error) {\n var err = _ERROR(2, error);\n promise.reject(err, {\n format: data.format\n });\n } else if (!data.format) {\n var _err3 = _ERROR(3);\n promise.reject(_err3);\n } else {\n promise.resolve({\n styles: data.styles,\n list: data.list,\n format: data.format\n });\n }\n });\n }\n return promise;\n}\nfunction loadSubTitle(object, promise) {\n if (!promise) {\n promise = new ProxyPromise();\n }\n new XHR({\n url: object.url,\n type: \"text\"\n }).then(function(data) {\n parse(data.res.response, \"string\").then(function(data2) {\n promise.resolve(_objectSpread2(_objectSpread2({}, data2), object));\n }).catch(function(e) {\n promise.reject(e);\n });\n }).catch(function(err) {\n var _err = _ERROR(1, _objectSpread2({\n statusText: err.statusText,\n status: err.status,\n type: err.type,\n message: \"http load error\",\n url: object.src\n }, object));\n promise.reject(_err);\n });\n return promise;\n}\nfunction checkSubtitle(src, dist) {\n if (src.id && dist.id && src.id === dist.id || src.language && dist.language && src.language === dist.language) {\n return true;\n }\n return false;\n}\nexport { addCSS, addClass, checkSubtitle, createDom, findCIndexByTime, findIndexByTime, getItemsByIndex, hasClass, isMobile, loadSubTitle, parse, removeClass, typeOf };\n","import { createClass as _createClass, classCallCheck as _classCallCheck } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nvar ResizeObserver = /* @__PURE__ */ function() {\n function ResizeObserver2() {\n var _this = this;\n _classCallCheck(this, ResizeObserver2);\n this.__handlers = [];\n if (!window.ResizeObserver) {\n return;\n }\n this.observer = new window.ResizeObserver(function(entries) {\n _this.__trigger(entries);\n });\n }\n _createClass(ResizeObserver2, [{\n key: \"addObserver\",\n value: function addObserver2(target, handler) {\n if (!this.observer) {\n return;\n }\n this.observer && this.observer.observe(target);\n var __handlers = this.__handlers;\n var index = -1;\n for (var i = 0; i < __handlers.length; i++) {\n if (__handlers[i] && target === __handlers[i].target) {\n index = i;\n }\n }\n if (index > -1) {\n this.__handlers[index].handler.push(handler);\n } else {\n this.__handlers.push({\n target,\n handler: [handler]\n });\n }\n }\n }, {\n key: \"unObserver\",\n value: function unObserver2(target) {\n var i = -1;\n this.__handlers.map(function(item, index) {\n if (target === item.target) {\n i = index;\n }\n });\n this.observer && this.observer.unobserve(target);\n i > -1 && this.__handlers.splice(i, 1);\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n this.observer && this.observer.disconnect();\n this.observer = null;\n this.__handlers = null;\n }\n }, {\n key: \"__runHandler\",\n value: function __runHandler(target, cr) {\n var __handlers = this.__handlers;\n for (var i = 0; i < __handlers.length; i++) {\n if (__handlers[i] && target === __handlers[i].target) {\n __handlers[i].handler && __handlers[i].handler.forEach(function(handler) {\n try {\n handler(target, cr);\n } catch (error) {\n console.error(error);\n }\n });\n break;\n }\n }\n }\n }, {\n key: \"__trigger\",\n value: function __trigger(entries) {\n var _this2 = this;\n entries.map(function(item) {\n var cr = item.contentRect;\n _this2.__runHandler(item.target, cr);\n });\n }\n }]);\n return ResizeObserver2;\n}();\nvar resizeObserver = null;\nfunction addObserver(target, handler) {\n if (!resizeObserver) {\n resizeObserver = new ResizeObserver();\n }\n resizeObserver.addObserver(target, handler);\n}\nfunction unObserver(target, handler) {\n if (!resizeObserver) {\n return;\n }\n resizeObserver.unObserver(target, handler);\n}\nexport { addObserver, unObserver };\n","var EVENTS = {\n RESIZE: \"resize\",\n CHANGE: \"change\",\n OFF: \"off\",\n UPDATE: \"update\"\n};\nexport { EVENTS };\n","import { inherits as _inherits, createSuper as _createSuper, createClass as _createClass, classCallCheck as _classCallCheck, defineProperty as _defineProperty, assertThisInitialized as _assertThisInitialized, possibleConstructorReturn as _possibleConstructorReturn, objectSpread2 as _objectSpread2, get as _get, getPrototypeOf as _getPrototypeOf } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nimport EventEmitter from \"eventemitter3\";\nimport { isMobile, typeOf, checkSubtitle, addCSS, addClass, parse, loadSubTitle, findIndexByTime, findCIndexByTime, getItemsByIndex, createDom, removeClass } from \"./utils.js\";\nimport { addObserver, unObserver } from \"./observer.js\";\nimport { EVENTS } from \"./constants.js\";\nimport { _ERROR } from \"./error.js\";\nimport ProxyPromise from \"./proxyPromise.js\";\nfunction formatUrl(url) {\n var ret = [];\n if (url && typeOf(url) === \"String\") {\n ret.push({\n url,\n index: 0,\n start: -1,\n end: -1\n });\n } else if (typeOf(url) === \"Array\") {\n url.forEach(function(item, i) {\n ret.push({\n url: item.url || item.src,\n index: i,\n start: item.start || -1,\n end: item.end || -1\n });\n });\n }\n return ret;\n}\nvar IS_MOBILE = false;\nvar Subtitle = /* @__PURE__ */ function(_EventEmitter) {\n _inherits(Subtitle2, _EventEmitter);\n var _super = _createSuper(Subtitle2);\n function Subtitle2(options) {\n var _this;\n _classCallCheck(this, Subtitle2);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"_onTimeupdate\", function() {\n if (!_this._isOpen) {\n return;\n }\n var _this$player$video = _this.player.video, videoWidth = _this$player$video.videoWidth, videoHeight = _this$player$video.videoHeight;\n if (!_this._videoMeta.scale && videoWidth && videoHeight) {\n _this._onResize(_this.player.root);\n }\n var curTime = _this._getPlayerCurrentTime();\n if (Math.round(Math.abs(curTime * 1e3 - _this._ctime)) < 200) {\n return;\n }\n _this._ctime = curTime * 1e3;\n if (_this.currentText && _this.currentText.list) {\n _this.config.updateMode === \"live\" ? _this._liveUpdate(curTime) : _this._update(curTime);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"getItemsByIndex\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_onResize\", function(target) {\n var _assertThisInitialize = _assertThisInitialized(_this), _videoMeta = _assertThisInitialize._videoMeta, config = _assertThisInitialize.config;\n if (!config.domRender) {\n return;\n }\n if (!target || !(target instanceof window.Element)) {\n target = _this.player.root;\n }\n if (_this._iId) {\n clearTimeout(_this._iId);\n _this._iId = null;\n }\n if (!_videoMeta.scale) {\n if (!_this.player.video) {\n return;\n }\n var _this$player$video2 = _this.player.video, videoWidth = _this$player$video2.videoWidth, videoHeight = _this$player$video2.videoHeight;\n if (videoWidth && videoHeight) {\n _videoMeta.videoWidth = videoWidth;\n _videoMeta.videoHeight = videoHeight;\n _videoMeta.scale = parseInt(videoHeight / videoWidth * 100, 10);\n } else {\n return;\n }\n }\n _this.__startResize(target);\n });\n _defineProperty(_assertThisInitialized(_this), \"_onCoreEvents\", function(e) {\n try {\n switch (e.eventName) {\n case \"core.subtitlesegments\":\n _this._onSubtitleSegment(e.list || []);\n break;\n case \"core.subtitleplaylist\":\n _this._onSubtitlePlaylist(e.list || []);\n break;\n case \"core.seipayloadtime\":\n _this._onCoreSeiintime(e);\n break;\n default:\n }\n } catch (e2) {\n console.error(e2);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"destroy\", function() {\n _this.detachPlayer();\n _this.removeAllListeners();\n _this.player = null;\n _this.textTrack = null;\n });\n IS_MOBILE = isMobile();\n _this.currentText = null;\n _this.currentExtText = null;\n _this.textTrack = [];\n _this._cid = -1;\n _this._gid = -1;\n _this._cids = [];\n _this._iId = null;\n _this._iC = 0;\n _this.player = null;\n _this.root = null;\n _this.config = {\n line: \"double\",\n bottom: 0,\n mode: \"stroke\",\n defaultOpen: false,\n baseSizeX: 49,\n baseSizeY: 28,\n minSize: 16,\n minMobileSize: 13,\n fitVideo: true,\n offsetBottom: 2,\n fontColor: \"#fff\",\n domRender: true,\n updateMode: \"vod\",\n debugger: false\n };\n _this._ctime = 0;\n _this._loadingTrack = {};\n Object.keys(_this.config).map(function(key) {\n if (options[key] !== void 0 && options[key] !== null) {\n _this.config[key] = options[key];\n }\n });\n _this._isOpen = _this.config.defaultOpen || false;\n _this._videoMeta = {\n scale: 0,\n videoHeight: 0,\n videoWidth: 0,\n lwidth: 0,\n lheight: 0,\n vWidth: 0,\n vHeight: 0,\n vBottom: 0,\n vLeft: 0,\n marginBottom: 0\n };\n if (!options.subTitles || typeOf(options.subTitles) !== \"Array\") {\n return _possibleConstructorReturn(_this);\n }\n if (options.player) {\n _this.attachPlayer(options.player);\n }\n _this.seiTime = 0;\n _this.lastSeiTime = 0;\n _this._curTexts = [];\n _this.setSubTitles(options.subTitles, _this.config.defaultOpen);\n return _this;\n }\n _createClass(Subtitle2, [{\n key: \"version\",\n get: function get() {\n return \"1.1.1\";\n }\n }, {\n key: \"setSubTitles\",\n value: function setSubTitles() {\n var _this2 = this;\n var subTitles = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];\n var isOpen = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n var ieRemoveFirst = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;\n var _isOpen = this._isOpen || isOpen;\n ieRemoveFirst && this.innerRoot && this.switchOff();\n this.currentText = null;\n this.textTrack = [];\n subTitles.forEach(function(item) {\n var text = {};\n Object.keys(item).map(function(key) {\n text[key] = item[key];\n });\n text.url = formatUrl(text.url);\n if (text.isDefault) {\n _this2.currentText = text;\n }\n _this2.textTrack.push(text);\n });\n this._log(\"setSubTitles\", _isOpen);\n if (_isOpen) {\n this.switch().catch(function(e) {\n _this2._log(\"[switch]\", e);\n });\n }\n this.currentText && this._loadTrack(this.currentText).then(function(textTrack) {\n _this2.addStyles(textTrack);\n });\n this.emit(\"reset\", {\n list: this.textTrack,\n isOpen: _isOpen\n });\n }\n }, {\n key: \"updateSubTitle\",\n value: function updateSubTitle(subTitle) {\n var _this3 = this;\n var index = -1;\n for (var i = 0; i < this.textTrack.length; i++) {\n if (checkSubtitle(subTitle, this.textTrack[i])) {\n index = i;\n break;\n }\n }\n this._log(\"updateSubTitle\", index, subTitle);\n if (index > -1) {\n var _isCurrent = checkSubtitle(this.currentText, this.textTrack[index]);\n this._log(\"updateSubTitle\", \"_isCurrent\", _isCurrent, \"this.isOpen\", this.isOpen, this.currentText);\n if (!_isCurrent) {\n return;\n }\n var url = formatUrl(subTitle.url);\n if (!this.isOpen) {\n this.textTrack[index].url = url;\n } else {\n url.forEach(function(item) {\n _this3.textTrack[index].url.push(item);\n });\n this._log(\"updateSubTitle _loadTrackUrls\", this.textTrack[index]);\n this._loadTrackUrls(this.currentText, 2);\n }\n }\n }\n }, {\n key: \"addStyles\",\n value: function addStyles(textTrack) {\n var styles = textTrack.styles, format = textTrack.format;\n if (styles && format === \"vtt\") {\n styles.map(function(item) {\n if (!item.key) {\n item.key = \"xg-text-track-span\";\n }\n });\n addCSS(styles, \"xg-text-track\");\n }\n }\n }, {\n key: \"attachPlayer\",\n value: function attachPlayer(player) {\n var _this4 = this;\n this._log(\"attachPlayer\");\n if (!player) {\n return;\n }\n if (this.player) {\n this.detachPlayer();\n }\n var _this$config = this.config, fontColor = _this$config.fontColor, mode = _this$config.mode, fitVideo = _this$config.fitVideo, domRender = _this$config.domRender;\n this.player = player;\n if (domRender) {\n this.root = document.createElement(\"xg-text-track\");\n this.root.className = \"xg-text-track\";\n !this._isOpen && addClass(this.root, \"text-track-hide\");\n !fitVideo && addClass(this.root, \"text-track-no-fitvideo\");\n mode && addClass(this.root, \"text-track-\".concat(mode));\n this.innerRoot = document.createElement(\"xg-text-track-inner\");\n this.root.appendChild(this.innerRoot);\n if (fontColor) {\n this.root.style.color = fontColor;\n }\n if (this.currentText) {\n [\"language\", \"id\", \"label\"].map(function(key) {\n _this4.root.setAttribute(\"data-\".concat(key), _this4.currentText[key] || \"\");\n });\n }\n this.player.root.appendChild(this.root);\n addObserver(player.root, this._onResize);\n }\n this.player.on(\"destroy\", this.destroy);\n this.player.on(\"timeupdate\", this._onTimeupdate);\n this.player.on(\"core_event\", this._onCoreEvents);\n if (this._isOpen) {\n this.switch().catch(function(e) {\n _this4._log(\"[switch]\", e);\n });\n }\n }\n }, {\n key: \"detachPlayer\",\n value: function detachPlayer() {\n var player = this.player, config = this.config;\n if (!player) {\n return;\n }\n player.off(\"destroy\", this.destroy);\n player.off(\"timeupdate\", this._onTimeupdate);\n player.on(\"core_event\", this._onCoreEvents);\n if (config.domRender) {\n if (player.root) {\n unObserver(player.root, this._onResize);\n player.root.removeChild(this.root);\n }\n this.innerRoot = null;\n this.root = null;\n }\n this.player = null;\n }\n }, {\n key: \"switch\",\n value: function _switch() {\n var _this5 = this;\n var subtitle = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {\n id: \"\",\n language: \"\"\n };\n this._log(\"switch\", subtitle);\n this._loadingTrack = subtitle;\n return new Promise(function(resolve, reject) {\n if (!subtitle.id && !subtitle.language) {\n if (_this5.currentText) {\n _this5._loadingTrack = {};\n _this5._updateCurrent(_this5.currentText);\n _this5.switchOn();\n var err = _ERROR(0, {\n message: \"switch default subtitle success\"\n });\n resolve(err);\n return;\n } else {\n var _err = _ERROR(5, {\n message: \"no default subtitle\"\n });\n reject(_err);\n return;\n }\n }\n if (_this5.currentText && checkSubtitle(subtitle, _this5.currentText)) {\n _this5._loadingTrack = {};\n _this5._updateCurrent(_this5.currentText);\n _this5.switchOn();\n resolve(_ERROR(0));\n } else {\n var nextSubtitle = null;\n _this5.__removeByTime(_this5._curTexts, 0);\n for (var i = 0; i < _this5.textTrack.length; i++) {\n if (checkSubtitle(subtitle, _this5.textTrack[i])) {\n nextSubtitle = _this5.textTrack[i];\n break;\n }\n }\n _this5._log(\"nextSubtitle\", nextSubtitle);\n if (nextSubtitle) {\n _this5._emitPlayerSwitch(_this5.currentText, nextSubtitle);\n if (nextSubtitle.list) {\n _this5._loadingTrack = {};\n _this5._updateCurrent(nextSubtitle);\n _this5.switchOn();\n resolve(_ERROR(0));\n } else {\n _this5._log(\"this._loadTrack\", nextSubtitle);\n _this5._updateCurrent(nextSubtitle);\n _this5._loadTrack(nextSubtitle).then(function(textTrack) {\n _this5.addStyles(textTrack);\n if (_this5._loadingTrack.id === nextSubtitle.id || _this5._loadingTrack.language === textTrack.language) {\n _this5._loadingTrack = {};\n _this5._updateCurrent(textTrack);\n _this5.switchOn();\n resolve(_ERROR(0));\n } else {\n var _err2 = _ERROR(6, {\n message: \"check _loadingTrack fail id: \".concat(_this5._loadingTrack.id, \" nextSubtitle:\").concat(textTrack.id)\n });\n reject(_err2);\n }\n }).catch(function(err2) {\n reject(err2);\n });\n }\n } else {\n var _err3 = _ERROR(4, new Error(\"The is no subtitle with id:[{\".concat(subtitle.id, \"}] or language:[\").concat(subtitle.language, \"]\")));\n reject(_err3);\n }\n }\n });\n }\n }, {\n key: \"switchExt\",\n value: function switchExt() {\n var _this6 = this;\n var subtitle = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {\n id: \"\",\n language: \"\"\n };\n return new Promise(function(resolve, reject) {\n if (!subtitle.id && !subtitle.language) {\n _this6.currentExtText = null;\n resolve(_ERROR(0));\n } else {\n var nextSubtitle = null;\n for (var i = 0; i < _this6.textTrack.length; i++) {\n if (checkSubtitle(subtitle, _this6.textTrack[i])) {\n nextSubtitle = _this6.textTrack[i];\n break;\n }\n }\n if (nextSubtitle && !checkSubtitle(nextSubtitle, _this6.currentText)) {\n _this6._loadTrack(nextSubtitle).then(function(textTrack) {\n _this6.currentExtText = textTrack;\n resolve(_ERROR(0));\n });\n }\n }\n });\n }\n }, {\n key: \"switchOn\",\n value: function switchOn() {\n this._log(\"switchOn\");\n this._isOpen = true;\n this.show();\n this.emit(EVENTS.CHANGE, this.currentText);\n }\n }, {\n key: \"switchOff\",\n value: function switchOff() {\n this._isOpen = false;\n this.hide();\n this.emit(EVENTS.OFF);\n }\n }, {\n key: \"isOpen\",\n get: function get() {\n return this._isOpen;\n }\n }, {\n key: \"_log\",\n value: function _log() {\n if (this.config.debugger) {\n var _console;\n for (var _len2 = arguments.length, msg = new Array(_len2), _key = 0; _key < _len2; _key++) {\n msg[_key] = arguments[_key];\n }\n (_console = console).log.apply(_console, [\"[xgSubtitle]\"].concat(msg));\n }\n }\n }, {\n key: \"_loadTrack\",\n value: function _loadTrack(textTrack) {\n var _this7 = this;\n this._log(\"_loadTrack\", textTrack.language, textTrack);\n var promise = new ProxyPromise();\n var contentType = \"\";\n var content = \"\";\n if (textTrack.json) {\n contentType = \"json\";\n content = textTrack.json;\n } else if (textTrack.stringContent && !textTrack.url) {\n contentType = \"string\";\n content = textTrack.stringContent;\n }\n if (content) {\n parse(content, contentType).then(function(data) {\n textTrack.format = data.format;\n textTrack.styles = data.styles;\n textTrack.list = data.list;\n promise.resolve(textTrack);\n }).catch(function(e) {\n promise.reject(e);\n });\n return promise;\n }\n var urls = textTrack.url;\n if (urls.length === 0) {\n promise.resolve(textTrack);\n return promise;\n }\n var url = urls.splice(0, 1);\n loadSubTitle(url[0]).then(function(data) {\n textTrack.format = data.format;\n textTrack.styles = data.styles;\n if (!textTrack.list) {\n textTrack.list = [];\n }\n _this7._pushList(textTrack.list, data.list);\n urls.length > 1 && _this7._loadTrackUrls(textTrack, 2);\n promise.resolve(textTrack);\n }).catch(function(e) {\n promise.reject(e);\n });\n return promise;\n }\n }, {\n key: \"_emitPlayerSwitch\",\n value: function _emitPlayerSwitch(curSubtitle, nextSubTitle) {\n if (curSubtitle && this.config.updateMode === \"live\") {\n curSubtitle.list = [];\n curSubtitle.url = [];\n }\n var data = _objectSpread2({\n lang: nextSubTitle.language\n }, nextSubTitle);\n this._log(\"emit subtile_switch \", nextSubTitle, data);\n this.player && this.player.emit(\"switch_subtitle\", data);\n }\n }, {\n key: \"_loadTrackUrls\",\n value: function _loadTrackUrls(textTrack, maxCount, promise) {\n var _this8 = this;\n var len = textTrack.url.length;\n var urls = len > maxCount ? textTrack.url.splice(0, maxCount) : textTrack.url.splice(0, len);\n var loadingCount = urls.length;\n this._log(\"_loadTrackUrls\", textTrack.language, len, urls.length, loadingCount);\n urls.forEach(function(item, i) {\n var obj = _objectSpread2(_objectSpread2({}, item), {}, {\n index: i\n });\n loadSubTitle(obj).then(function(data) {\n textTrack.format = data.format;\n textTrack.styles = data.format;\n if (!textTrack.list) {\n textTrack.list = [];\n }\n _this8._pushList(textTrack.list, data.list);\n loadingCount--;\n }).catch(function(e) {\n loadingCount--;\n }).finally(function(e) {\n if (loadingCount === 0) {\n promise && promise.resolve(textTrack);\n _this8._loadTrackUrls(textTrack, 2);\n }\n });\n });\n }\n }, {\n key: \"_freshUrl\",\n value: function _freshUrl(textTrack) {\n var data = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {\n url: \"\"\n };\n var i = -1;\n textTrack.url.forEach(function(item, index) {\n if (item.url === data.url) {\n i = index;\n }\n });\n if (i > -1) {\n textTrack.url.splice(i, 1);\n }\n }\n }, {\n key: \"_pushList\",\n value: function _pushList(dist, src) {\n var _start = src[0].start;\n var _end = src[src.length - 1].end;\n if (dist.length === 0 || _start >= dist[dist.length - 1].end) {\n src.forEach(function(item) {\n dist.push(item);\n });\n } else {\n var _index = -1;\n for (var i = 0; i < dist.length; i++) {\n if (dist[i].start > _end) {\n _index = i;\n break;\n }\n }\n if (_index > -1) {\n src.forEach(function(item, i2) {\n dist.splice(_index + i2, 0, item);\n });\n }\n }\n return dist;\n }\n }, {\n key: \"_updateCurrent\",\n value: function _updateCurrent(subtitle) {\n var _this9 = this;\n this.currentText = subtitle;\n if (this.config.domRender && this.root) {\n [\"language\", \"id\", \"label\"].map(function(key) {\n _this9.root.setAttribute(\"data-\".concat(key), _this9.currentText[key] || \"\");\n });\n this.__remove(this._cids);\n }\n this._cids = [];\n this._gid = -1;\n this._cid = -1;\n this._curTexts = [];\n var curTime = this._getPlayerCurrentTime();\n curTime && (this.config.updateMode === \"live\" ? this._liveUpdate(curTime) : this._update(curTime));\n }\n }, {\n key: \"__loadAll\",\n value: function __loadAll() {\n var _this10 = this;\n this.textTrack.forEach(function(item) {\n _this10._loadTrack(item);\n });\n }\n }, {\n key: \"getDelCid\",\n value: function getDelCid(oldArr, newArr) {\n var ret = [];\n for (var i = 0; i < oldArr.length; i++) {\n if (!newArr.includes(oldArr[i])) {\n ret.push(oldArr[i]);\n }\n }\n return ret;\n }\n }, {\n key: \"getNewCid\",\n value: function getNewCid(oldArr, newArr) {\n var ret = [];\n for (var i = 0; i < newArr.length; i++) {\n if (!oldArr.includes(newArr[i])) {\n ret.push(newArr[i]);\n }\n }\n return ret;\n }\n }, {\n key: \"_liveUpdate\",\n value: function _liveUpdate(currentTime) {\n var _this11 = this;\n if (!this.currentText || !this.currentText.list || !this.currentText.list.length) {\n return;\n }\n var _cids = [];\n var _gid = findIndexByTime(currentTime, this.currentText.list, this._gid);\n if (_gid > -1) {\n _cids = findCIndexByTime(currentTime, this.currentText.list[_gid].list, this._cid);\n }\n this.__removeByTime(this._curTexts, currentTime);\n this._log(\"_liveUpdate\", currentTime, _gid, _cids, this.currentText.list[0].list[0].start, this.currentText.list[0].list[0].end);\n if (_cids.length > 0) {\n var ret = getItemsByIndex(this.currentText.list, _gid, _cids);\n var _len = this._curTexts.length;\n var _si = _len > 0 ? this._curTexts[_len - 1].index : 0;\n ret.forEach(function(item, i) {\n item.index = i + _si;\n _this11._curTexts.push(item);\n });\n this.__render(ret);\n }\n this.emit(\"update\", this._curTexts);\n }\n }, {\n key: \"_update\",\n value: function _update(currentTime) {\n var _this12 = this;\n if (!this.currentText || !this.currentText.list || !this.currentText.list.length) {\n return;\n }\n var _gid = findIndexByTime(currentTime, this.currentText.list, this._gid);\n var _cids = [];\n if (_gid > -1) {\n _cids = findCIndexByTime(currentTime, this.currentText.list[_gid].list, this._cid);\n }\n if (_cids.length < 1) {\n this._cids.length > 0 && this.config.domRender && this.__remove(this._cids);\n this._cids = [];\n return;\n }\n if (this._cids === _cids && _gid === this._gid) {\n return;\n }\n this._gid = _gid;\n this._cid = _cids[0];\n var delCids = this.getDelCid(this._cids, _cids);\n var newCids = this.getNewCid(this._cids, _cids);\n this._cids = _cids;\n this.config.domRender && this.__remove(delCids);\n var texts = [];\n newCids.map(function(item) {\n var text = _this12.currentText.list[_gid].list[item];\n text.index = item;\n texts.push(text);\n });\n if (this.currentExtText) {\n newCids.map(function(item) {\n var textExt = _this12.currentText.list[_gid].list[item];\n textExt.index = item;\n texts.push(textExt);\n });\n }\n this.emit(\"update\", texts);\n this.__render(texts, currentTime);\n }\n }, {\n key: \"_getPlayerCurrentTime\",\n value: function _getPlayerCurrentTime() {\n if (!this.player) {\n return 0;\n }\n var currentTime = this.player.currentTime;\n var curTime = parseInt(currentTime * 1e3 + this.seiTime * 1e3 - this.lastSeiTime * 1e3, 10) / 1e3;\n return curTime;\n }\n }, {\n key: \"_onSubtitlePlaylist\",\n value: function _onSubtitlePlaylist(subtitleList) {\n this._log(\"_onSubtitlePlaylist\", subtitleList);\n var list = subtitleList.map(function(item) {\n return {\n label: item.name,\n language: item.lang,\n id: item.id,\n isDefault: item.default,\n url: [],\n mUrl: item.url\n };\n });\n this.setSubTitles(list);\n }\n }, {\n key: \"_onSubtitleSegment\",\n value: function _onSubtitleSegment(urlList) {\n this._log(\"_onSubtitleSegment\", urlList.length, urlList[0].lang, urlList[0].sn, urlList[urlList.length - 1].sn, urlList[0].start, urlList[urlList.length - 1].end);\n if (!urlList || urlList.length === 0) {\n return;\n }\n var lang = urlList[0].lang;\n var urls = urlList.map(function(item) {\n return {\n id: item.sn,\n url: item.url,\n duration: item.duration,\n start: item.start,\n end: item.end\n };\n });\n var _sub = {\n language: lang,\n url: urls\n };\n if (!checkSubtitle(_sub, this.currentText)) {\n return;\n }\n this.updateSubTitle(_sub);\n }\n }, {\n key: \"_onCoreSeiintime\",\n value: function _onCoreSeiintime(e) {\n try {\n var sei = e.time / 1e3;\n this._log(\"_onCoreSeiintime sei\", sei, this.seiTime, this.lastSeiTime);\n this.seiTime = sei;\n this.lastSeiTime = this.player ? this.player.currentTime : 0;\n } catch (e2) {\n }\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n var _this13 = this;\n var _this$config2 = this.config, baseSizeX = _this$config2.baseSizeX, baseSizeY = _this$config2.baseSizeY, minMobileSize = _this$config2.minMobileSize, minSize = _this$config2.minSize, fitVideo = _this$config2.fitVideo, offsetBottom = _this$config2.offsetBottom;\n var scale = this._videoMeta.scale;\n this._videoMeta.lwidth = width;\n this._videoMeta.lheight = height;\n var vWidth;\n var vHeight = 0;\n if (height / width * 100 >= scale) {\n vHeight = parseInt(scale * width, 10) / 100;\n vWidth = width;\n } else {\n vHeight = height;\n vWidth = parseInt(height / scale * 100, 10);\n }\n this._videoMeta.vWidth = vWidth;\n this._videoMeta.vHeight = vHeight;\n var _size = 0;\n var fontSize = 0;\n if (scale > 120) {\n _size = baseSizeY;\n fontSize = parseInt(_size * vHeight / 1080, 10);\n } else {\n _size = baseSizeX;\n fontSize = parseInt(_size * vWidth / 1920, 10);\n }\n var mini = IS_MOBILE ? minMobileSize : minSize;\n fontSize = fontSize < mini ? mini : fontSize > _size ? _size : fontSize;\n var style = {\n fontSize\n };\n var vBottom = parseInt((height - vHeight) / 2, 10);\n var vLeft = parseInt((width - vWidth) / 2, 10);\n var marginBottom = parseInt(vHeight * offsetBottom, 10) / 100;\n this._videoMeta.vBottom = vBottom;\n this._videoMeta.vLeft = vLeft;\n this._videoMeta.marginBottom = marginBottom;\n if (fitVideo) {\n style.bottom = vBottom + marginBottom;\n style.left = style.right = vLeft;\n }\n Object.keys(style).map(function(item) {\n _this13.root.style[item] = \"\".concat(style[item], \"px\");\n });\n this.emit(EVENTS.RESIZE, {\n vLeft,\n vBottom,\n marginBottom,\n vWidth,\n vHeight,\n fontSize,\n scale\n });\n }\n }, {\n key: \"__startResize\",\n value: function __startResize(target) {\n var _this14 = this;\n var rect = target.getBoundingClientRect();\n var _videoMeta = this._videoMeta;\n var width = rect.width, height = rect.height;\n if (this._iId) {\n clearTimeout(this._iId);\n this._iId = null;\n }\n if (width > 0 && height > 0 && (width !== _videoMeta.lwidth || height !== _videoMeta.lheight)) {\n this._iC = 0;\n this.resize(width, height);\n } else {\n if (this._iC >= 5) {\n this._iC = 0;\n return;\n }\n this._iC++;\n this._iId = setTimeout(function() {\n _this14.__startResize(target);\n }, 50);\n }\n }\n }, {\n key: \"__removeByTime\",\n value: function __removeByTime(list, time) {\n var ids = [];\n for (var i = 0; i < list.length; i++) {\n if (!time || list[i].end < time) {\n ids.push(i);\n }\n }\n if (ids.length === 0) {\n return;\n }\n list.splice(ids[0], ids.length);\n this.config.domRender && this.__remove(ids);\n }\n }, {\n key: \"__remove\",\n value: function __remove(ids) {\n var _this15 = this;\n if (!ids || ids.length < 1) {\n return;\n }\n var children = this.innerRoot.children;\n var removeIndex = [];\n for (var i = 0; i < children.length; i++) {\n var index = Number(children[i].getAttribute(\"data-index\"));\n if (ids.includes(index)) {\n removeIndex.push(children[i]);\n }\n }\n removeIndex.map(function(item) {\n _this15.innerRoot.removeChild(item);\n });\n }\n }, {\n key: \"__render\",\n value: function __render() {\n var _this16 = this;\n var jsonItems = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];\n this._log(\"__render\", jsonItems.length, this.config.domRender);\n if (jsonItems.length > 0 && this.config.domRender) {\n jsonItems.map(function(jsonItem) {\n var className = \"text-track-\".concat(_this16.config.line);\n jsonItem.text.map(function(item, index) {\n if (index > 0) {\n className += \" text-track-deputy\";\n }\n var attr = {\n \"data-start\": jsonItem.start,\n \"data-end\": jsonItem.end,\n \"data-index\": jsonItem.index\n };\n _this16.innerRoot.appendChild(createDom(\"xg-text-track-span\", item, attr, className));\n });\n });\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n if (!this.config.domRender) {\n return;\n }\n removeClass(this.root, \"text-track-hide\");\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (!this.config.domRender) {\n return;\n }\n addClass(this.root, \"text-track-hide\");\n this.innerRoot.innerHTML = \"\";\n }\n }, {\n key: \"emit\",\n value: function emit(event, data) {\n var _get2;\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key2 = 2; _key2 < _len3; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n (_get2 = _get(_getPrototypeOf(Subtitle2.prototype), \"emit\", this)).call.apply(_get2, [this, event, data].concat(args));\n }\n }, {\n key: \"on\",\n value: function on(event, callback) {\n var _get3;\n for (var _len4 = arguments.length, args = new Array(_len4 > 2 ? _len4 - 2 : 0), _key3 = 2; _key3 < _len4; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n (_get3 = _get(_getPrototypeOf(Subtitle2.prototype), \"on\", this)).call.apply(_get3, [this, event, callback].concat(args));\n }\n }, {\n key: \"once\",\n value: function once(event, callback) {\n var _get4;\n for (var _len5 = arguments.length, args = new Array(_len5 > 2 ? _len5 - 2 : 0), _key4 = 2; _key4 < _len5; _key4++) {\n args[_key4 - 2] = arguments[_key4];\n }\n (_get4 = _get(_getPrototypeOf(Subtitle2.prototype), \"once\", this)).call.apply(_get4, [this, event, callback].concat(args));\n }\n }, {\n key: \"off\",\n value: function off(event, callback) {\n var _get5;\n for (var _len6 = arguments.length, args = new Array(_len6 > 2 ? _len6 - 2 : 0), _key5 = 2; _key5 < _len6; _key5++) {\n args[_key5 - 2] = arguments[_key5];\n }\n (_get5 = _get(_getPrototypeOf(Subtitle2.prototype), \"off\", this)).call.apply(_get5, [this, event, callback].concat(args));\n }\n }, {\n key: \"offAll\",\n value: function offAll() {\n _get(_getPrototypeOf(Subtitle2.prototype), \"removeAllListeners\", this).call(this);\n }\n }, {\n key: \"marginBottom\",\n get: function get() {\n var _this$_videoMeta = this._videoMeta, bottom = _this$_videoMeta.bottom, marginBottom = _this$_videoMeta.marginBottom;\n return this.config.fitVideo ? bottom + marginBottom : marginBottom;\n }\n }]);\n return Subtitle2;\n}(EventEmitter);\nexport { Subtitle as default };\n","import SubTitles from 'xgplayer-subtitles'\nconst defaultStyle = {\n follow: true, // 是否跟随控制栏调整位置\n mode: 'stroke', // 字体显示模式,默认是描边\n followBottom: 50, // 跟随底部控制栏的高度\n fitVideo: true, // 是否跟随视频自动调整字号\n offsetBottom: 2, // 字幕距离画面底部百分比,默认2%\n baseSizeX: 49, // 横屏视频适配基准字号\n baseSizeY: 28, // 竖屏视频适配基准字号\n minSize: 16, // pc端最小字号\n minMobileSize: 13, // 移动端最小字号\n line: 'double', // 最大显示行数 single/double/three\n fontColor: '#fff' // 字体颜色\n}\n\n// function createSubTitle (textTrack, style = {}, defaultOpen = true) {\n// const config = {\n// subTitles: textTrack,\n// defaultOpen: defaultOpen\n// }\n\n// Object.keys(style).map(key => {\n// config[key] = style[key]\n// })\n// return new SubTitles(config)\n// }\n\nclass XgSubtitles {\n constructor (player, list, style) {\n const subtitle = this.create(list, style, player.textTrackShowDefault)\n subtitle.attachPlayer(player)\n this.subtitle = subtitle\n this.player = player\n this.positionData = {\n vBottom: 0,\n marginBottom: 0\n }\n this.isActive = false\n this.followBottom = style.followBottom;\n ['onSubtitleResize', 'onFocus', 'onBlur'].map(item => {\n this[item] = this[item].bind(this)\n })\n\n if (player.controls && style.follow) {\n this.subtitle.on('resize', this.onSubtitleResize)\n player.on('focus', this.onFocus)\n player.on('blur', this.onBlur)\n }\n }\n\n create (textTrack, style = {}, defaultOpen = true) {\n const config = {\n subTitles: textTrack,\n defaultOpen: defaultOpen\n }\n Object.keys(style).map(key => {\n config[key] = style[key]\n })\n return new SubTitles(config)\n }\n\n switch (subtitle) {\n return this.subtitle.switch(subtitle)\n }\n\n switchOff () {\n return this.subtitle.switchOff()\n }\n\n setSubTitles (subtitles, showDefault, isNeedMove) {\n return this.subtitle.setSubTitles(subtitles, showDefault, isNeedMove)\n }\n\n onFocus () {\n const { marginBottom, vBottom } = this.positionData\n if (this.isActive || !marginBottom) {\n return\n }\n this.isActive = true\n let bottom = marginBottom + vBottom\n if (this.followBottom > bottom) {\n bottom = this.followBottom\n }\n this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)\n }\n\n onBlur () {\n this.isActive = false\n const bottom = this.positionData.vBottom + this.positionData.marginBottom\n this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)\n }\n\n onSubtitleResize (data) {\n this.positionData.vBottom = data.vBottom\n this.positionData.marginBottom = data.marginBottom\n }\n\n destroy () {\n this.subtitle.off('resize', this.onSubtitleResize)\n this.player.off('focus', this.onFocus)\n this.player.off('blur', this.onBlur)\n this.subtitle.destroy()\n this.subtitle = null\n }\n}\n\nlet textTrack = function () {\n const player = this\n const { textTrack } = player.config\n if (!textTrack) {\n return\n }\n let textTrackStyle = player.config.textTrackStyle || {}\n Object.keys(defaultStyle).map(key => {\n if (textTrackStyle[key] === undefined) {\n textTrackStyle[key] = defaultStyle[key]\n }\n })\n player.textTrackShowDefault = false\n player.config.textTrack.map((item, index) => {\n if (!item.id && !item.language) {\n item.id = index\n }\n !item.url && (item.url = item.src)\n !item.language && (item.language = item.srclang)\n item.isDefault === undefined && (item.isDefault = item.default)\n !player.textTrackShowDefault && (player.textTrackShowDefault = item.isDefault || item.default)\n })\n\n this.subTitles = new XgSubtitles(player, player.config.textTrack, textTrackStyle)\n\n player.setSubTitles = (textTrack, needRemove = true) => {\n let showDefault = false\n textTrack.map((item, index) => {\n if (!item.id && !item.language) {\n item.id = index\n }\n !item.url && (item.url = item.src)\n !item.language && (item.language = item.srclang)\n item.isDefault === undefined && (item.isDefault = item.default)\n item.isDefault && (showDefault = true)\n })\n player.textTrackShowDefault = showDefault\n this.subTitles.setSubTitles(textTrack, showDefault, needRemove)\n player.emit('subtitle_change', {\n off: false,\n isListUpdate: true,\n list: textTrack\n })\n }\n\n player.switchSubTitle = (subtitle = { id: '', language: '' }) => {\n this.subTitles.switch(subtitle).then(data => {\n if (data.code === 0) {\n subtitle.off = false\n subtitle.isListUpdate = false\n subtitle.list = []\n player.emit('subtitle_change', subtitle)\n }\n })\n }\n\n player.switchOffSubtile = () => {\n this.subTitles.switchOff()\n player.emit('subtitle_change', {\n off: true,\n isListUpdate: false,\n list: []\n })\n }\n\n function onDestroy () {\n this.subTitles.destroy()\n this.subTitles = null\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'textTrack',\n method: textTrack\n}\n","import { createDom } from '../../utils/util'\nimport '../style/controls/enter.scss'\n\nlet s_enter = function () {\n let player = this\n let root = player.root\n\n let barStr = ''\n for(let i = 1; i <= 12; i++) {\n barStr += `<div class=\"xgplayer-enter-bar${i}\"></div>`\n }\n let enter = createDom('xg-enter', `<div class=\"xgplayer-enter-spinner\">\n ${barStr}\n </div>`, {}, 'xgplayer-enter');\n root.appendChild(enter)\n}\n\nexport default {\n name: 's_enter',\n method: s_enter\n}","import { createDom } from '../../utils/util'\nimport RequestCssFullIcon from '../assets/requestCssFull.svg'\nimport ExitCssFullIcon from '../assets/exitCssFull.svg'\nimport '../style/controls/cssfullscreen.scss'\n\nlet s_cssFullscreen = function () {\n let player = this\n if (!player.config.cssFullscreen) { return }\n let btn = createDom('xg-cssfullscreen', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-requestfull\">${RequestCssFullIcon}</div>\n <div class=\"xgplayer-icon-exitfull\">${ExitCssFullIcon}</div>\n </xg-icon>`, {}, 'xgplayer-cssfullscreen')\n\n let tipsText = {}\n tipsText.requestfull = player.lang.CSSFULLSCREEN_TIPS\n tipsText.exitfull = player.lang.EXITCSSFULLSCREEN_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-requestfull\">${tipsText.requestfull}</span>\n <span class=\"xgplayer-tip-exitfull\">${tipsText.exitfull}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('cssFullscreenBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_cssFullscreen',\n method: s_cssFullscreen\n}","import { createDom } from '../../utils/util'\nimport MutedIcon from '../assets/volumeMuted.svg'\nimport SmallIcon from '../assets/volumeSmall.svg'\nimport LargeIcon from '../assets/volumeLarge.svg'\nimport '../style/controls/volume.scss'\n\nlet s_volume = function () {\n let player = this\n let container = createDom('xg-volume', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-large\">${LargeIcon}</div>\n <div class=\"xgplayer-icon-small\">${SmallIcon}</div>\n <div class=\"xgplayer-icon-muted\">${MutedIcon}</div>\n </xg-icon>\n <xg-slider class=\"xgplayer-slider\" tabindex=\"2\">\n <xg-bar class=\"xgplayer-bar\">\n <xg-drag class=\"xgplayer-drag\"></xg-drag>\n </xg-bar>\n </xg-slider>`, {}, 'xgplayer-volume')\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(container)\n }\n })\n let slider = container.querySelector('.xgplayer-slider')\n let bar = container.querySelector('.xgplayer-bar')\n let selected = container.querySelector('.xgplayer-drag')\n let icon = container.querySelector('.xgplayer-icon')\n selected.style.height = `${player.config.volume * 100}%`\n slider.volume = player.config.volume;\n\n bar.addEventListener('mousedown', e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeBarClick', e)\n });\n\n ['click', 'touchend'].forEach(item => {\n icon.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconClick')\n })\n })\n\n icon.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconEnter')\n });\n\n ['blur', 'mouseleave'].forEach(item => {\n container.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconLeave')\n })\n })\n}\n\nexport default {\n name: 's_volume',\n method: s_volume\n}","import { createDom, addClass, removeClass, hasClass, toggleClass } from '../../utils/util'\nimport sniffer from '../../utils/sniffer'\nimport '../style/controls/definition.scss'\n\nlet s_definition = function () {\n let player = this\n let root = player.root\n let paused\n let container = createDom('xg-definition', '', {tabindex: 3}, 'xgplayer-definition')\n if (sniffer.device === 'mobile') {\n player.config.definitionActive = 'click'\n }\n\n function onCanplayResourceReady () {\n let list = player.definitionList\n let tmp = ['<ul>'], src = player.config.url, a = document.createElement('a')\n if (player.switchURL) {\n ['mp4', 'hls', '__flv__', 'dash'].every(item => {\n if (player[item]) {\n if(player[item].url) {\n a.href = player[item].url\n }\n if(item === '__flv__') {\n if(player[item]._options) {\n a.href = player[item]._options.url\n } else {\n a.href = player[item]._mediaDataSource.url\n }\n }\n if(item === 'hls') {\n a.href = player[item].originUrl || player[item].url\n src = a.href\n }\n src = a.href\n return false\n } else {\n return true\n }\n })\n } else {\n src = player.currentSrc || player.src\n }\n list.forEach(item => {\n a.href = item.url\n if (player.dash) {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${item.selected ? 'selected' : ''}'>${item.name}</li>`)\n } else {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${a.href === src ? 'selected' : ''}'>${item.name}</li>`)\n }\n })\n let cursrc = list.filter(item => {\n a.href = item.url\n if (player.dash) {\n return item.selected === true\n } else {\n return a.href === src\n }\n })\n console.warn('cursrc:', cursrc, 'src:', src, 'list:', list)\n tmp.push(`</ul><p class='name'>${(cursrc[0] || {name: ''}).name}</p>`)\n let urlInRoot = root.querySelector('.xgplayer-definition')\n if (urlInRoot) {\n urlInRoot.innerHTML = tmp.join('')\n let cur = urlInRoot.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-definition-active')\n urlInRoot.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-definition-active')\n container.focus()\n })\n }\n player.controls.appendChild(container)\n }\n }\n function onResourceReady (list) {\n player.definitionList = list\n if (list && list instanceof Array && list.length > 0) {\n addClass(root, 'xgplayer-is-definition')\n player.once('canplay', onCanplayResourceReady)\n }\n }\n player.on('resourceReady', onResourceReady)\n\n function onPlayingChangeDefinition () {\n player.currentTime = player.curTime\n if (paused) {\n player.pause()\n } else {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n };\n function onTimeupdateChangeDefinition () {\n player.once('timeupdate', onPlayingChangeDefinition)\n };\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let list = player.definitionList\n let li = e.target || e.srcElement, a = document.createElement('a')\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n let from, to\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if(hasClass(item, 'selected')) {\n from = item.getAttribute('cname')\n removeClass(item, 'selected')\n player.emit('beforeDefinitionChange', item.getAttribute('url'))\n }\n })\n if (player.dash) {\n list.forEach(item => {\n item.selected = false\n if (item.name === li.innerHTML) {\n item.selected = true\n }\n })\n }\n\n addClass(li, 'selected')\n to = li.getAttribute('cname')\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}`\n a.href = li.getAttribute('url')\n paused = player.paused\n if (player.switchURL) {\n let curRUL = document.createElement('a');\n ['mp4', 'hls', '__flv__', 'dash'].every(item => {\n if (player[item]) {\n if(player[item].url) {\n curRUL.href = player[item].url\n }\n if(item === '__flv__') {\n if(player[item]._options) {\n curRUL.href = player[item]._options.url\n } else {\n curRUL.href = player[item]._mediaDataSource.url\n }\n }\n if(item === 'hls') {\n curRUL.href = player[item].originUrl || player[item].url\n }\n return false\n } else {\n return true\n }\n })\n if (curRUL.href !== a.href && !player.ended) {\n player.switchURL(a.href)\n }\n } else {\n if (player['hls']) {\n let curRUL = document.createElement('a')\n curRUL = player['hls'].url\n }\n if (a.href !== player.currentSrc) {\n player.curTime = player.currentTime\n if (!player.ended) {\n player.src = a.href\n }\n }\n }\n if(navigator.userAgent.toLowerCase().indexOf('android') > -1) {\n player.once('timeupdate', onTimeupdateChangeDefinition)\n } else {\n player.once('loadedmetadata', onPlayingChangeDefinition)\n }\n player.emit('definitionChange', {from, to})\n if (sniffer.device === 'mobile') {\n removeClass(player.root, 'xgplayer-definition-active')\n }\n } else if (player.config.definitionActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n if(sniffer.device === 'mobile') {\n toggleClass(player.root, 'xgplayer-definition-active')\n } else {\n addClass(player.root, 'xgplayer-definition-active')\n }\n container.focus()\n }\n player.emit('focus')\n }, false)\n })\n\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(root, 'xgplayer-definition-active')\n })\n\n function onBlur () {\n removeClass(root, 'xgplayer-definition-active')\n }\n player.on('blur', onBlur)\n\n function onDestroy () {\n player.off('resourceReady', onResourceReady)\n player.off('canplay', onCanplayResourceReady)\n if(navigator.userAgent.toLowerCase().indexOf('android') > -1) {\n player.off('timeupdate', onTimeupdateChangeDefinition)\n player.off('timeupdate', onPlayingChangeDefinition)\n } else {\n player.off('loadedmetadata', onPlayingChangeDefinition)\n }\n player.off('blur', onBlur)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getCurrentDefinition = function () {\n let liList = player.controls.querySelectorAll('.xgplayer-definition ul li')\n for(let i = 0; i < liList.length; i++) {\n if(liList[i].className && liList[i].className.indexOf('selected') > -1) {\n return {\n name: liList[i].getAttribute('cname'),\n url: liList[i].getAttribute('url')\n }\n }\n }\n return {\n name: liList[0].getAttribute('cname'),\n url: liList[0].getAttribute('url')\n }\n }\n\n player.switchDefinition = function (definitionObj = {}) {\n let liList = player.controls.querySelectorAll('.xgplayer-definition ul li')\n for(let i = 0; i < liList.length; i++) {\n if(liList[i].getAttribute('cname') === definitionObj.name || liList[i].getAttribute('url') === definitionObj.url || i === definitionObj.index) {\n liList[i].click()\n }\n }\n }\n}\n\nexport default {\n name: 's_definition',\n method: s_definition\n}","import { createDom, addClass, removeClass, hasClass, toggleClass } from '../../utils/util'\nimport sniffer from '../../utils/sniffer'\nimport '../style/controls/playbackRate.scss'\n\nlet s_playbackRate = function () {\n let player = this\n let playbackRateList = []\n if (player.config.playbackRate) {\n playbackRateList = [].concat(player.config.playbackRate)\n playbackRateList.sort((a, b) => b - a)\n } else {\n return false\n }\n let unit = player.config.playbackRateUnit !== undefined ? player.config.playbackRateUnit : 'x'\n let container = createDom('xg-playbackrate', \" \", {}, 'xgplayer-playbackrate')\n if (sniffer.device === 'mobile') {\n player.config.playbackRateActive = 'click'\n }\n\n let list = []\n playbackRateList.forEach(item => {\n list.push({name: `${item}`, rate: `${item}${unit}`, selected: false})\n })\n let selectedSpeed = 1\n let tmp = ['<ul>']\n list.forEach(item => {\n if(player.config.defaultPlaybackRate && player.config.defaultPlaybackRate.toString() === item.name) {\n item.selected = true\n selectedSpeed = player.config.defaultPlaybackRate\n player.once('playing', () => { player.video.playbackRate = player.config.defaultPlaybackRate})\n } else if (item.name === '1.0' || item.name === '1') {\n if(!player.config.defaultPlaybackRate || player.config.defaultPlaybackRate === 1) {\n item.selected = true\n }\n }\n tmp.push(`<li cname='${item.name}' class='${item.selected ? 'selected' : ''}'>${item.rate}</li>`)\n })\n tmp.push(`</ul><p class='name'>${selectedSpeed}${unit}</p>`)\n let playbackDom = player.root.querySelector('.xgplayer-playbackrate')\n if (playbackDom) {\n playbackDom.innerHTML = tmp.join('')\n let cur = playbackDom.querySelector('.name')\n if (!player.config.playbackRateActive || player.config.playbackRateActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-playbackrate-active')\n playbackDom.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.playbackRateActive || player.config.playbackRateActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-playbackrate-active')\n container.focus()\n })\n }\n player.once('ready', () => {\n player.controls.appendChild(container)\n })\n }\n\n let ev = ['touchend', 'click']\n ev.forEach(item => {\n container.addEventListener(item, e => {\n e.stopPropagation()\n e.preventDefault()\n let li = e.target\n if(li && li.tagName.toLocaleLowerCase() === 'li') {\n let from, to\n list.forEach(item => {\n item.selected = false\n if (li.textContent.replace(/\\s+/g,\"\") === item.rate) {\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if(hasClass(item, 'selected')) {\n from = Number(item.getAttribute('cname'))\n removeClass(item, 'selected')\n }\n })\n item.selected = true\n player.video.playbackRate = item.name * 1\n selectedSpeed = item.name * 1\n }\n })\n addClass(li, 'selected')\n to = Number(li.getAttribute('cname'))\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}${unit}`\n player.emit('playbackrateChange', {from, to})\n if (sniffer.device === 'mobile') {\n removeClass(player.root, 'xgplayer-playbackrate-active')\n }\n } else if (player.config.playbackRateActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'span')) {\n if(sniffer.device === 'mobile') {\n toggleClass(player.root, 'xgplayer-playbackrate-active')\n } else {\n addClass(player.root, 'xgplayer-playbackrate-active')\n }\n container.focus()\n }\n player.emit('focus')\n }, false)\n })\n container.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(player.root, 'xgplayer-playbackrate-active')\n })\n\n function onBlur () {\n removeClass(player.root, 'xgplayer-playbackrate-active')\n }\n player.on('blur', onBlur)\n\n player.on('play', () => {\n if(player.video.playbackRate.toFixed(1) !== selectedSpeed.toFixed(1) ) {\n player.video.playbackRate = selectedSpeed\n }\n })\n\n player.switchPlaybackRate = function (playbackRateObj = {}) {\n let liList = player.controls.querySelectorAll('.xgplayer-playbackrate ul li')\n for(let i = 0; i < liList.length; i++) {\n if(!hasClass(liList[i], 'selected') && (liList[i].getAttribute('cname') === `${playbackRateObj.playbackRate}` || i === playbackRateObj.index)) {\n liList[i].click()\n }\n }\n }\n\n player.on('ratechange', () => {\n player.switchPlaybackRate({ playbackRate: player.playbackRate })\n })\n}\n\nexport default {\n name: 's_playbackRate',\n method: s_playbackRate\n}","import { createDom } from '../../utils/util'\n\nlet s_localPreview = function () {\n let player = this\n if (player.config.preview && player.config.preview.uploadEl) {\n let preview = createDom('xg-preview', '<input type=\"file\">', {}, 'xgplayer-preview')\n let upload = preview.querySelector('input')\n player.config.preview.uploadEl.appendChild(preview)\n upload.onchange = function () {\n player.emit('upload', upload)\n }\n }\n}\n\nexport default {\n name: 's_localPreview',\n method: s_localPreview\n}","import { createDom } from '../../utils/util'\nimport DownloadIcon from '../assets/download.svg'\nimport '../style/controls/download.scss'\n\nlet s_download = function () {\n let player = this\n if (!player.config.download) { return }\n let btn = createDom('xg-download', `<xg-icon class=\"xgplayer-icon\">${DownloadIcon}</xg-icon>`, {}, 'xgplayer-download')\n\n let tipsText = player.lang.DOWNLOAD_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-download\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('downloadBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_download',\n method: s_download\n}","import { createDom, deepCopy, addClass, removeClass } from '../../utils/util'\nimport DanmuJs from 'danmu.js'\nimport PanelIcon from '../assets/panel.svg'\nimport '../style/controls/danmu.scss'\n\nlet s_danmu = function () {\n let player = this\n let root = player.root\n if(!player.config.danmu) { return }\n let container = createDom('xg-danmu', '', {}, 'xgplayer-danmu')\n player.once('ready', () => {\n root.appendChild(container)\n })\n let config = deepCopy({\n container,\n player: player.video,\n comments: [],\n area: {\n start: 0,\n end: 1\n }\n }, player.config.danmu)\n let panelBtn\n if (player.config.danmu.panel) {\n panelBtn = createDom('xg-panel', `<xg-panel-icon class=\"xgplayer-panel-icon\">\n ${PanelIcon}\n </xg-panel-icon>\n <xg-panel-slider class=\"xgplayer-panel-slider\">\n <xg-hidemode class=\"xgplayer-hidemode\">\n <p class=\"xgplayer-hidemode-font\">屏蔽类型</p>\n <ul class=\"xgplayer-hidemode-radio\">\n <li class=\"xgplayer-hidemode-scroll\" id=\"false\">滚动</li><li class=\"xgplayer-hidemode-top\" id=\"false\">顶部</li><li class=\"xgplayer-hidemode-bottom\" id=\"false\">底部</li><li class=\"xgplayer-hidemode-color\" id=\"false\">色彩</li>\n </ul>\n </xg-hidemode>\n <xg-transparency class=\"xgplayer-transparency\">\n <span>不透明度</span>\n <input class=\"xgplayer-transparency-line xgplayer-transparency-color xgplayer-transparency-bar xgplayer-transparency-gradient\" type=\"range\" min=\"0\" max=\"100\" step=\"0.1\" value=\"50\"></input>\n </xg-transparency>\n <xg-showarea class=\"xgplayer-showarea\">\n <div class=\"xgplayer-showarea-name\">显示区域</div>\n <div class=\"xgplayer-showarea-control\">\n <div class=\"xgplayer-showarea-control-up\">\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-onequarters\">1/4</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-twoquarters selected-color\">1/2</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-threequarters\">3/4</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-full\">1</span>\n </div>\n <div class=\"xgplayer-showarea-control-down\">\n <div class=\"xgplayer-showarea-control-down-dots\">\n <span class=\"xgplayer-showarea-onequarters-dot\"></span>\n <span class=\"xgplayer-showarea-twoquarters-dot\"></span>\n <span class=\"xgplayer-showarea-threequarters-dot\"></span>\n <span class=\"xgplayer-showarea-full-dot\"></span>\n </div>\n <input class=\"xgplayer-showarea-line xgplayer-showarea-color xgplayer-showarea-bar xgplayer-gradient\" type=\"range\" min=\"1\" max=\"4\" step=\"1\" value=\"1\">\n </div>\n </div>\n </xg-showarea>\n <xg-danmuspeed class=\"xgplayer-danmuspeed\">\n <div class=\"xgplayer-danmuspeed-name\">弹幕速度</div>\n <div class=\"xgplayer-danmuspeed-control\">\n <div class=\"xgplayer-danmuspeed-control-up\">\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-small\">慢</span>\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-middle selected-color\">中</span>\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-large\">快</span>\n </div>\n <div class=\"xgplayer-danmuspeed-control-down\">\n <div class=\"xgplayer-danmuspeed-control-down-dots\">\n <span class=\"xgplayer-danmuspeed-small-dot\"></span>\n <span class=\"xgplayer-danmuspeed-middle-dot\"></span>\n <span class=\"xgplayer-danmuspeed-large-dot\"></span>\n </div>\n <input class=\"xgplayer-danmuspeed-line xgplayer-danmuspeed-color xgplayer-danmuspeed-bar xgplayer-gradient\" type=\"range\" min=\"50\" max=\"150\" step=\"50\" value=\"100\">\n </div>\n </div>\n </xg-danmuspeed>\n <xg-danmufont class=\"xgplayer-danmufont\">\n <div class=\"xgplayer-danmufont-name\">字体大小</div>\n <div class=\"xgplayer-danmufont-control\">\n <div class=\"xgplayer-danmufont-control-up\">\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-small\">小</span>\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-middle\">中</span>\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-large selected-color\">大</span>\n </div>\n <div class=\"xgplayer-danmufont-control-down\">\n <div class=\"xgplayer-danmufont-control-down-dots\">\n <span class=\"xgplayer-danmufont-small-dot\"></span>\n <span class=\"xgplayer-danmufont-middle-dot\"></span>\n <span class=\"xgplayer-danmufont-large-dot\"></span>\n </div>\n <input class=\"xgplayer-danmufont-line xgplayer-danmufont-color xgplayer-danmufont-bar xgplayer-gradient\" type=\"range\" min=\"20\" max=\"30\" step=\"5\" value=\"25\">\n </div>\n </div>\n </xg-danmufont>\n </xg-panel-slider>`, {tabindex: 7}, 'xgplayer-panel')\n player.once('ready', () => {\n player.controls.appendChild(panelBtn)\n })\n }\n player.once('complete', () => {\n let danmujs = new DanmuJs(config)\n player.emit('initDefaultDanmu', danmujs)\n player.danmu = danmujs\n\n if (!player.config.danmu.panel) {\n return\n }\n\n let slider = panelBtn.querySelector('.xgplayer-panel-slider')\n let focusStatus\n let focusarray = ['mouseenter', 'touchend', 'click']\n focusarray.forEach(item => {\n panelBtn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n addClass(slider, 'xgplayer-panel-active')\n panelBtn.focus()\n focusStatus = true\n })\n })\n panelBtn.addEventListener('mouseleave', function (e) {\n e.preventDefault()\n e.stopPropagation()\n removeClass(slider, 'xgplayer-panel-active')\n focusStatus = false\n })\n slider.addEventListener('mouseleave', function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (focusStatus === false) {\n removeClass(slider, 'xgplayer-panel-active')\n }\n })\n\n let danmuConfig = player.config.danmu\n let hidemodeScroll = panelBtn.querySelector('.xgplayer-hidemode-scroll')\n let hidemodeTop = panelBtn.querySelector('.xgplayer-hidemode-top')\n let hidemodeBottom = panelBtn.querySelector('.xgplayer-hidemode-bottom')\n let hidemodeColor = panelBtn.querySelector('.xgplayer-hidemode-color')\n let hidemodeArray = {\n 'scroll': hidemodeScroll,\n 'top': hidemodeTop,\n 'bottom': hidemodeBottom,\n 'color': hidemodeColor\n }\n for (let key in hidemodeArray) {\n let keys = key\n let ev = ['touchend', 'click']\n ev.forEach(item => {\n hidemodeArray[keys].addEventListener(item, function (e) {\n if (hidemodeArray[keys].getAttribute('id') !== 'true') {\n hidemodeArray[keys].style.color = '#f85959'\n hidemodeArray[keys].setAttribute('id', 'true')\n player.danmu.hide(keys)\n } else {\n hidemodeArray[keys].style.color = '#aaa'\n hidemodeArray[keys].setAttribute('id', 'false')\n player.danmu.show(keys)\n }\n })\n })\n }\n let transparency = panelBtn.querySelector('.xgplayer-transparency-line')\n let transparencyGradient = panelBtn.querySelector('.xgplayer-transparency-gradient')\n let transparencyValue = 50\n transparencyGradient.style.background = 'linear-gradient(to right, #f85959 0%, #f85959 ' + transparencyValue + '%, #aaa ' + transparencyValue + '%, #aaa)'\n transparency.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n transparencyValue = e.target.value\n transparencyGradient.style.background = 'linear-gradient(to right, #f85959 0%, #f85959 ' + transparencyValue + '%, #aaa ' + transparencyValue + '%, #aaa)'\n danmuConfig.comments.forEach(item => {\n item.style.opacity = transparencyValue / 100\n })\n })\n let showarea = panelBtn.querySelector('.xgplayer-showarea-line')\n showarea.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let showareaValue = e.target.value\n player.danmu.config.area.end = showareaValue / 100\n player.config.danmu.area.end = showareaValue / 100\n player.danmu.bulletBtn.main.channel.resize()\n })\n let danmuspeed = panelBtn.querySelector('.xgplayer-danmuspeed-line')\n danmuspeed.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let danmuspeedValue = e.target.value\n danmuConfig.comments.forEach(item => {\n item.duration = (200 - danmuspeedValue) * 100\n })\n })\n let danmufont = panelBtn.querySelector('.xgplayer-danmufont-line')\n danmufont.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let danmufontValue = e.target.value\n danmuConfig.comments.forEach(item => {\n item.style.fontSize = danmufontValue + 'px'\n })\n })\n if(navigator.userAgent.indexOf(\"Firefox\") > -1) {\n for (let i = 0; i < slider.querySelectorAll('input').length; i++) {\n slider.querySelectorAll('input')[i].style.marginTop = '10px'\n }\n }\n })\n}\n\nexport default {\n name: 's_danmu',\n method: s_danmu\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/pip.scss'\n\nlet s_pip = function () {\n let player = this\n if (!player.config.pip || typeof player.video.requestPictureInPicture !== 'function') { return }\n let pip = player.lang.PIP\n let btn = createDom('xg-pip', `<p class=\"name\"><span>${pip}</span></p>`, {tabindex: 9}, 'xgplayer-pip')\n\n player.once('ready', () => {\n player.controls.appendChild(btn);\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('pipBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_pip',\n method: s_pip\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/miniplayer.scss'\n\nlet s_miniplayer = function () {\n let player = this\n if (!player.config.miniplayer) { return }\n let miniplayer = player.lang.MINIPLAYER\n let btn = createDom('xg-miniplayer', `<p class=\"name\"><span>${miniplayer}</span></p>`, {tabindex: 9}, 'xgplayer-miniplayer')\n\n player.once('ready', () => {\n player.controls.appendChild(btn);\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('miniplayerBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_miniplayer',\n method: s_miniplayer\n}","import { createDom, addClass } from '../../utils/util'\nimport PlayNextIcon from '../assets/playNext.svg'\nimport '../style/controls/playNext.scss'\n\nlet s_playNext = function () {\n let player = this\n let nextBtn = player.config.playNext\n if (!nextBtn || !nextBtn.urlList) { return }\n let btn = createDom('xg-playnext', `<xg-icon class=\"xgplayer-icon\">${PlayNextIcon}</xg-icon>`, {}, 'xgplayer-playnext')\n let tipsText = player.lang.PLAYNEXT_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-playnext\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-is-enter')\n player.userGestureTrigEvent('playNextBtnClick')\n })\n })\n\n let onUrlListEnd = function () {\n addClass(player.root, 'xgplayer-playnext-inactive')\n }\n player.on('urlListEnd', onUrlListEnd) \n\n function onDestroy () {\n player.off('urlListEnd', onUrlListEnd)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_playNext',\n method: s_playNext\n}","import { createDom } from '../../utils/util'\nimport RotateIcon from '../assets/rotate.svg'\nimport '../style/controls/rotate.scss'\n\nlet s_rotate = function () {\n let player = this\n if (!player.config.rotate) { return }\n let btn = createDom('xg-rotate', `<xg-icon class=\"xgplayer-icon\">${RotateIcon}</xg-icon>`, {}, 'xgplayer-rotate')\n\n let tipsText = player.lang.ROTATE_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-rotate\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('rotateBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_rotate',\n method: s_rotate\n}","import { createDom } from '../../utils/util'\nimport ReloadIcon from '../assets/reload.svg'\nimport '../style/controls/reload.scss'\n\nlet s_reload = function () {\n let player = this\n if (!player.config.reload) { return }\n let btn = createDom('xg-reload', `<xg-icon class=\"xgplayer-icon\">${ReloadIcon}</xg-icon>`, {}, 'xgplayer-reload')\n\n let tipsText = player.lang.RELOAD_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-reload\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('reloadBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_reload',\n method: s_reload\n}","import { createDom } from '../../utils/util'\nimport '../style/controls/screenShot.scss'\n\nlet s_screenShot = function () {\n let player = this\n if (!player.config.screenShot || player.config.screenShot.hideButton) {\n return\n }\n let screenShotText = player.lang.SCREENSHOT\n let btn = createDom('xg-screenshot', `<p class=\"name\"><span>${player.config.screenShot.iconText || screenShotText}</span></p>`, {tabindex: 11}, 'xgplayer-screenshot')\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('screenShotBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_screenShot',\n method: s_screenShot\n}","import Player from '../../player'\nimport '../style/controls/textTrack.scss'\n\nlet s_nativeTextTrack = function () {\n if (!this.config.nativeTextTrack) {\n return\n }\n let player = this\n let root = player.root\n let util = Player.util\n let container = util.createDom('xg-texttrack', '', {tabindex: 7}, 'xgplayer-texttrack')\n let list = player.config.nativeTextTrack\n if (list && Array.isArray(list) && list.length > 0) {\n util.addClass(player.root, 'xgplayer-is-texttrack')\n player.once('canplay', function () {\n let tmp = ['<ul>']\n tmp.push(`<li class='${this.textTrackShowDefault ? '' : 'selected'}'}'>${player.lang.OFF}</li>`)\n list.forEach(item => {\n tmp.push(`<li class='${item.default && this.textTrackShowDefault ? 'selected' : ''}'>${item.label}</li>`)\n })\n let controlText = player.lang.TEXTTRACK\n tmp.push(`</ul><p class=\"name\">${controlText}</p>`)\n\n let urlInRoot = root.querySelector('.xgplayer-texttrack')\n if (urlInRoot) {\n urlInRoot.innerHTML = tmp.join('')\n let cur = urlInRoot.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(root, 'xgplayer-texttrack-active')\n urlInRoot.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n })\n }\n player.controls.appendChild(container)\n }\n })\n };\n\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let li = e.target || e.srcElement\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n util.removeClass(item, 'selected')\n })\n util.addClass(li, 'selected')\n let trackDoms = player.root.getElementsByTagName('Track')\n if (li.innerHTML === player.lang.OFF) {\n trackDoms[0].track.mode = 'hidden'\n trackDoms[0].src = ''\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n trackDoms[0].style.display = 'block'\n util.addClass(player.root, 'xgplayer-texttrack-active')\n trackDoms[0].track.mode = 'showing'\n\n list.some(item => {\n if (item.label === li.innerHTML) {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n return true\n }\n })\n player.emit('textTrackChange', li.innerHTML)\n }\n } else if (player.config.textTrackActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n util.addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n }\n }, false)\n })\n\n player.on('play', () => {\n let ul = root.querySelector('.xgplayer-texttrack ul')\n let trackDoms = root.getElementsByTagName('Track')\n if (!player['hls'] || !ul || !trackDoms) return\n trackDoms[0].src = ''\n Array.prototype.forEach.call(ul.childNodes, li => {\n if (util.hasClass(li, 'selected')) {\n if (li.innerHTML === player.lang.OFF) {\n trackDoms[0].track.mode = 'hidden'\n trackDoms[0].src = ''\n } else {\n trackDoms[0].track.mode = 'hidden'\n\n list.some(item => {\n if (item.label !== li.innerHTML) {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n return true\n }\n })\n\n list.some(item => {\n if (item.label === li.innerHTML) {\n setTimeout(() => {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n trackDoms[0].track.mode = 'showing'\n })\n return true\n }\n })\n }\n }\n })\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n })\n\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n })\n}\n\nexport default {\n name: 's_nativeTextTrack',\n method: s_nativeTextTrack\n}\n","import { createDom, addClass, removeClass, hasClass } from '../../utils/util'\nimport '../style/controls/textTrack.scss'\n\nfunction renderList (root, textTrack, offText, isDefaultShow) {\n if (textTrack.length === 0) {\n root.innerHTML = ''\n return\n }\n let tmp = []\n tmp.push(`<li data-type=\"off\" class=\"${isDefaultShow ? '' : 'selected'}\">${offText}</li>`)\n textTrack.forEach(item => {\n tmp.push(`<li data-id=${item.id} data-language=${item.language} class=\"${item.isDefault && isDefaultShow ? 'selected' : ''}\">${item.label}</li>`)\n })\n root.innerHTML = tmp.join('')\n}\n\n// eslint-disable-next-line camelcase\nlet s_textTrack = function () {\n let player = this\n if (!this.config.textTrack) {\n return\n }\n let textTrack = this.config.textTrack\n let controlText = player.lang.TEXTTRACK\n const container = createDom('xg-texttrack', `<ul></ul><p class=\"name\">${controlText}</p>`, {tabindex: 7}, 'xgplayer-texttrack')\n\n function onCanPlay () {\n const urlInRoot = player.root.querySelector('.xgplayer-texttrack')\n if (!urlInRoot) {\n player.controls.appendChild(container)\n const cur = container.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n })\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(player.root, 'xgplayer-texttrack-active')\n })\n } else {\n cur.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n if (hasClass(player.root, 'xgplayer-texttrack-active')) {\n removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n addClass(player.root, 'xgplayer-texttrack-active')\n }\n })\n }\n }\n\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let li = e.target || e.srcElement\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n const id = li.getAttribute('data-id')\n const type = li.getAttribute('data-type')\n const language = li.getAttribute('data-language')\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n removeClass(item, 'selected')\n })\n addClass(li, 'selected')\n if (type === 'off') {\n player.switchOffSubtile()\n removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n player.switchSubTitle({id, language})\n addClass(player.root, 'xgplayer-texttrack-active')\n }\n }\n })\n })\n\n const ul = container.getElementsByTagName('ul')[0]\n renderList(ul, textTrack, player.lang.OFF, player.textTrackShowDefault)\n if (textTrack.length === 0) {\n addClass(container, 'xgplayer-texttrack-hide')\n } else {\n removeClass(container, 'xgplayer-texttrack-hide')\n }\n }\n\n const onListUpdate = function (data) {\n if (!data.isListUpdate) return\n const ul = container.getElementsByTagName('ul')[0]\n textTrack = data.list\n renderList(ul, data.list, player.lang.OFF, player.textTrackShowDefault)\n data.list.length > 0 ? addClass(player.root, 'xgplayer-is-texttrack') : removeClass(player.root, 'xgplayer-is-texttrack')\n if (data.list.length === 0) {\n addClass(container, 'xgplayer-texttrack-hide')\n } else {\n removeClass(container, 'xgplayer-texttrack-hide')\n }\n }\n\n if (textTrack && Array.isArray(textTrack)) {\n textTrack.length > 0 && addClass(player.root, 'xgplayer-is-texttrack')\n player.once('canplay', onCanPlay)\n player.on('subtitle_change', onListUpdate)\n }\n}\n\nexport default {\n name: 's_textTrack',\n method: s_textTrack\n}\n","import { addClass, removeClass, createDom } from '../../utils/util'\nimport '../style/controls/error.scss'\n\nlet s_error = function () {\n let player = this\n let root = player.root\n\n let error = createDom('xg-error', '<span class=\"xgplayer-error-text\">请<span class=\"xgplayer-error-refresh\">刷新</span>试试</span>', {}, 'xgplayer-error')\n player.once('ready', () => {\n root.appendChild(error)\n });\n\n let text = error.querySelector('.xgplayer-error-text')\n if (player.config.lang && player.config.lang === 'zh-cn') {\n text.innerHTML = player.config.errorTips || `请<span class=\"xgplayer-error-refresh\">刷新</span>试试`\n } else {\n text.innerHTML = player.config.errorTips || `please try to <span class=\"xgplayer-error-refresh\">refresh</span>`\n }\n let refresh = null\n\n function onError () {\n // player.controls.style.display = 'none'\n // if (player.error) {\n // text.innerHTML = player.error\n // } else {\n \n // }\n addClass(player.root, 'xgplayer-is-error')\n refresh = error.querySelector('.xgplayer-error-refresh')\n if (refresh) {\n ['touchend', 'click'].forEach(item => {\n refresh.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.autoplay = true\n let currentTime = player.currentTime\n player.once('playing', () => {\n player.currentTime = currentTime\n removeClass(player.root, 'xgplayer-is-error')\n })\n player.src = player.config.url\n })\n })\n }\n }\n player.on('error', onError)\n function onDestroy () {\n player.off('error', onError)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_error',\n method: s_error\n}","import { createDom, format } from '../../utils/util'\nimport '../style/controls/memoryPlay.scss'\n\nlet s_memoryPlay = function () {\n let player = this\n let lastPlayTime = player.config.lastPlayTime || 0\n let lastPlayTimeHideDelay = player.config.lastPlayTimeHideDelay || 0\n let dom = null\n if (lastPlayTime <= 0) {\n return\n }\n dom = createDom('xg-memoryplay', `<div class=\"xgplayer-memoryplay-spot\"><div class=\"xgplayer-progress-tip\">您上次观看到 <span class=\"xgplayer-lasttime\">${format(lastPlayTime)}</span> ,为您自动续播 <span class=\"btn-close\"><svg viewBox=\"64 64 896 896\" focusable=\"false\" class=\"\" data-icon=\"close\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\"></path></svg></span></div></div>`, {}, 'xgplayer-memoryplay');\n dom.addEventListener('mouseover', (e) => {\n e.stopPropagation();\n });\n const removeFunc = () => {\n dom && dom.parentNode && dom.parentNode.removeChild(dom)\n dom = null\n }\n dom.querySelector('.xgplayer-progress-tip .btn-close').addEventListener('click', removeFunc)\n const handlePlay = () => {\n if(lastPlayTimeHideDelay > 0) {\n player.root.appendChild(dom);\n }\n player.emit('memoryPlayStart', lastPlayTime);\n if (lastPlayTimeHideDelay > 0) {\n setTimeout(() => {\n removeFunc()\n }, lastPlayTimeHideDelay * 1000)\n }\n }\n player.once('playing', handlePlay)\n player.once('ended', removeFunc)\n}\n\nexport default {\n name: 's_memoryPlay',\n method: s_memoryPlay\n}","import { createDom } from '../../utils/util'\nimport AirplayIcon from '../assets/airplay.svg'\nimport '../style/controls/airplay.scss'\n\nlet s_airplay = function () {\n let player = this\n if(!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent) return\n\n let btn = createDom('xg-airplay', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-airplay\">${AirplayIcon}</div>\n </xg-icon>`, {}, 'xgplayer-airplay')\n\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-airplay\">${player.lang.AIRPLAY_TIPS}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n player.video.addEventListener('webkitplaybacktargetavailabilitychanged',\n event => {\n switch (event.availability) {\n case \"available\":\n btn.hidden = false;\n btn.disabled = false;\n break;\n case \"not-available\":\n btn.hidden = true;\n btn.disabled = true;\n break;\n }\n });\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('airplayBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_airplay',\n method: s_airplay\n}","import Player from '../player'\n\nimport I18n from './controls/i18n.js'\nimport Enter from './controls/enter.js'\nimport Play from './controls/play.js'\nimport Start from './controls/start.js'\nimport Poster from './controls/poster.js'\nimport Flex from './controls/flex.js'\nimport Fullscreen from './controls/fullscreen.js'\nimport CssFullscreen from './controls/cssFullscreen.js'\nimport Volume from './controls/volume.js'\nimport Definition from './controls/definition.js'\nimport Loading from './controls/loading.js'\nimport Progress from './controls/progress.js'\nimport Time from './controls/time.js'\nimport Replay from './controls/replay.js'\nimport PlaybackRate from './controls/playbackRate.js'\nimport LocalPreview from './controls/localPreview.js'\nimport Download from './controls/download.js'\nimport Danmu from './controls/danmu.js'\nimport Pip from './controls/pip.js'\nimport Miniplayer from './controls/miniplayer.js'\nimport PlayNext from './controls/playNext.js'\nimport Rotate from './controls/rotate.js'\nimport Reload from './controls/reload.js'\nimport ScreenShot from './controls/screenShot.js'\nimport NativeTextTrack from './controls/nativeTextTrack.js'\nimport TextTrack from './controls/textTrack.js'\nimport ErrorControl from './controls/error.js'\nimport MemoryPlay from './controls/memoryPlay.js'\nimport Airplay from './controls/airplay.js'\n\nPlayer.installAll([\n I18n,\n Enter,\n Play,\n Start,\n Poster,\n Flex,\n Fullscreen,\n CssFullscreen,\n Volume,\n Definition,\n Loading,\n Progress,\n Time,\n Replay,\n PlaybackRate,\n LocalPreview,\n Download,\n Danmu,\n Pip,\n Miniplayer,\n PlayNext,\n Rotate,\n Reload,\n ScreenShot,\n NativeTextTrack,\n TextTrack,\n ErrorControl,\n MemoryPlay,\n Airplay\n])","import Player from './player'\n\nimport Airplay from './controls/airplay.js'\nimport CssFullscreen from './controls/cssFullscreen.js'\nimport Danmu from './controls/danmu.js'\nimport Definition from './controls/definition.js'\nimport Download from './controls/download.js'\nimport ErrorRetryControl from './controls/errorRetry.js'\nimport Fullscreen from './controls/fullscreen.js'\nimport Keyboard from './controls/keyboard.js'\nimport LocalPreview from './controls/localPreview.js'\nimport MemoryPlay from './controls/memoryPlay.js'\nimport Miniplayer from './controls/miniplayer.js'\nimport Mobile from './controls/mobile.js'\nimport Pc from './controls/pc.js'\nimport Pip from './controls/pip.js'\nimport Play from './controls/play.js'\nimport PlayNext from './controls/playNext.js'\nimport Reload from './controls/reload.js'\nimport Replay from './controls/replay.js'\nimport Rotate from './controls/rotate.js'\nimport ScreenShot from './controls/screenShot.js'\nimport StallCheck from './controls/stallCheck.js'\nimport Start from './controls/start.js'\nimport Volume from './controls/volume.js'\nimport TextTrack from './controls/textTrack.js'\n\nPlayer.installAll([\n Airplay,\n CssFullscreen,\n Danmu,\n Definition,\n Download,\n ErrorRetryControl,\n Fullscreen,\n Keyboard,\n LocalPreview,\n MemoryPlay,\n Miniplayer,\n Mobile,\n Pc,\n Pip,\n Play,\n PlayNext,\n Reload,\n Replay,\n Rotate,\n ScreenShot,\n StallCheck,\n Start,\n Volume,\n TextTrack \n])\n\nimport './skin/index.js';\n\nexport default Player\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://xgplayer/webpack/universalModuleDefinition","webpack://xgplayer/webpack/bootstrap","webpack://xgplayer/./src/utils/util.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/css-loader/lib/css-base.js","webpack://xgplayer/./node_modules/style-loader/lib/addStyles.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/is-value.js","webpack://xgplayer/./src/error.js","webpack://xgplayer/./src/utils/sniffer.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/value/is.js","webpack://xgplayer/./src/utils/xgplayerTimeRange.js","webpack://xgplayer/./src/player.js","webpack://xgplayer/./src/skin/controls/i18n.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/_virtual/_rollupPluginBabelHelpers.js","webpack://xgplayer/./src/proxy.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/event-emitter/index.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/d/index.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/plain-function/is.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/function/is.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/prototype/is.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/object/is.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/assign/index.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/assign/is-implemented.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/assign/shim.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/keys/index.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/keys/is-implemented.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/keys/shim.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/function/noop.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/valid-value.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/normalize-options.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/string/#/contains/index.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/string/#/contains/shim.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/valid-callable.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/event-emitter/all-off.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/valid-object.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/is-object.js","webpack://xgplayer/./src/skin/style/index.scss?b29b","webpack://xgplayer/./src/skin/style/index.scss","webpack://xgplayer/./node_modules/style-loader/lib/urls.js","webpack://xgplayer/./src/controls/mobile.js","webpack://xgplayer/./src/controls/pc.js","webpack://xgplayer/./src/controls/start.js","webpack://xgplayer/./src/skin/controls/start.js","webpack://xgplayer/./src/skin/assets/startPlay.svg","webpack://xgplayer/./src/skin/assets/startPause.svg","webpack://xgplayer/./src/skin/style/controls/start.scss?f3eb","webpack://xgplayer/./src/skin/style/controls/start.scss","webpack://xgplayer/./src/controls/fullscreen.js","webpack://xgplayer/./src/controls/play.js","webpack://xgplayer/./src/controls/replay.js","webpack://xgplayer/./src/skin/controls/play.js","webpack://xgplayer/./src/skin/assets/play.svg","webpack://xgplayer/./src/skin/assets/pause.svg","webpack://xgplayer/./src/skin/style/controls/play.scss?1b61","webpack://xgplayer/./src/skin/style/controls/play.scss","webpack://xgplayer/./src/skin/controls/poster.js","webpack://xgplayer/./src/skin/style/controls/poster.scss?525c","webpack://xgplayer/./src/skin/style/controls/poster.scss","webpack://xgplayer/./src/skin/controls/flex.js","webpack://xgplayer/./src/skin/style/controls/placeholder.scss?98c9","webpack://xgplayer/./src/skin/style/controls/placeholder.scss","webpack://xgplayer/./src/skin/controls/fullscreen.js","webpack://xgplayer/./src/skin/assets/requestFull.svg","webpack://xgplayer/./src/skin/assets/exitFull.svg","webpack://xgplayer/./src/skin/style/controls/fullscreen.scss?9263","webpack://xgplayer/./src/skin/style/controls/fullscreen.scss","webpack://xgplayer/./src/skin/controls/loading.js","webpack://xgplayer/./src/skin/assets/loading.svg","webpack://xgplayer/./src/skin/style/controls/loading.scss?804e","webpack://xgplayer/./src/skin/style/controls/loading.scss","webpack://xgplayer/./src/skin/controls/progress.js","webpack://xgplayer/./src/skin/style/controls/progress.scss?dac3","webpack://xgplayer/./src/skin/style/controls/progress.scss","webpack://xgplayer/./src/skin/controls/time.js","webpack://xgplayer/./src/skin/style/controls/time.scss?e80e","webpack://xgplayer/./src/skin/style/controls/time.scss","webpack://xgplayer/./src/skin/controls/replay.js","webpack://xgplayer/./src/skin/assets/replay.svg","webpack://xgplayer/./src/skin/style/controls/replay.scss?2924","webpack://xgplayer/./src/skin/style/controls/replay.scss","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/error.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/proxyPromise.js","webpack://xgplayer/./src/skin/style/controls/textTrack.scss?0744","webpack://xgplayer/./src/index.js","webpack://xgplayer/./src/controls/airplay.js","webpack://xgplayer/./src/controls/cssFullscreen.js","webpack://xgplayer/./src/controls/danmu.js","webpack://xgplayer/./src/controls/definition.js","webpack://xgplayer/./src/controls/download.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/downloadjs/download.js","webpack://xgplayer/./src/utils/url.js","webpack://xgplayer/./src/controls/errorRetry.js","webpack://xgplayer/./src/controls/keyboard.js","webpack://xgplayer/./src/controls/localPreview.js","webpack://xgplayer/./src/controls/memoryPlay.js","webpack://xgplayer/./src/controls/miniplayer.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/draggabilly/draggabilly.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/get-size/get-size.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/unidragger/unidragger.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/unipointer/unipointer.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/ev-emitter/ev-emitter.js","webpack://xgplayer/./src/controls/pip.js","webpack://xgplayer/./src/controls/playNext.js","webpack://xgplayer/./src/controls/reload.js","webpack://xgplayer/./src/controls/rotate.js","webpack://xgplayer/./src/controls/screenShot.js","webpack://xgplayer/./src/controls/stallCheck.js","webpack://xgplayer/./src/controls/volume.js","webpack://xgplayer/./src/controls/textTrack.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/index.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/eventemitter3/index.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/utils.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/parser.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/xhr.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/observer.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/constants.js","webpack://xgplayer/./src/skin/index.js","webpack://xgplayer/./src/skin/controls/enter.js","webpack://xgplayer/./src/skin/style/controls/enter.scss?e536","webpack://xgplayer/./src/skin/style/controls/enter.scss","webpack://xgplayer/./src/skin/controls/cssFullscreen.js","webpack://xgplayer/./src/skin/assets/requestCssFull.svg","webpack://xgplayer/./src/skin/assets/exitCssFull.svg","webpack://xgplayer/./src/skin/style/controls/cssfullscreen.scss?d6c9","webpack://xgplayer/./src/skin/style/controls/cssfullscreen.scss","webpack://xgplayer/./src/skin/controls/volume.js","webpack://xgplayer/./src/skin/assets/volumeMuted.svg","webpack://xgplayer/./src/skin/assets/volumeSmall.svg","webpack://xgplayer/./src/skin/assets/volumeLarge.svg","webpack://xgplayer/./src/skin/style/controls/volume.scss?f859","webpack://xgplayer/./src/skin/style/controls/volume.scss","webpack://xgplayer/./src/skin/controls/definition.js","webpack://xgplayer/./src/skin/style/controls/definition.scss?1aa0","webpack://xgplayer/./src/skin/style/controls/definition.scss","webpack://xgplayer/./src/skin/controls/playbackRate.js","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss?199b","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss","webpack://xgplayer/./src/skin/controls/localPreview.js","webpack://xgplayer/./src/skin/controls/download.js","webpack://xgplayer/./src/skin/assets/download.svg","webpack://xgplayer/./src/skin/style/controls/download.scss?8a91","webpack://xgplayer/./src/skin/style/controls/download.scss","webpack://xgplayer/./src/skin/controls/danmu.js","webpack://xgplayer//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/danmu.js/dist/index.js","webpack://xgplayer/(webpack)/buildin/module.js","webpack://xgplayer/./src/skin/assets/panel.svg","webpack://xgplayer/./src/skin/style/controls/danmu.scss?a4e4","webpack://xgplayer/./src/skin/style/controls/danmu.scss","webpack://xgplayer/./src/skin/controls/pip.js","webpack://xgplayer/./src/skin/style/controls/pip.scss?7c22","webpack://xgplayer/./src/skin/style/controls/pip.scss","webpack://xgplayer/./src/skin/controls/miniplayer.js","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss?5449","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss","webpack://xgplayer/./src/skin/controls/playNext.js","webpack://xgplayer/./src/skin/assets/playNext.svg","webpack://xgplayer/./src/skin/style/controls/playNext.scss?f2e9","webpack://xgplayer/./src/skin/style/controls/playNext.scss","webpack://xgplayer/./src/skin/controls/rotate.js","webpack://xgplayer/./src/skin/assets/rotate.svg","webpack://xgplayer/./src/skin/style/controls/rotate.scss?68c2","webpack://xgplayer/./src/skin/style/controls/rotate.scss","webpack://xgplayer/./src/skin/controls/reload.js","webpack://xgplayer/./src/skin/assets/reload.svg","webpack://xgplayer/./src/skin/style/controls/reload.scss?5e61","webpack://xgplayer/./src/skin/style/controls/reload.scss","webpack://xgplayer/./src/skin/controls/screenShot.js","webpack://xgplayer/./src/skin/style/controls/screenShot.scss?548f","webpack://xgplayer/./src/skin/style/controls/screenShot.scss","webpack://xgplayer/./src/skin/controls/nativeTextTrack.js","webpack://xgplayer/./src/skin/style/controls/textTrack.scss","webpack://xgplayer/./src/skin/controls/textTrack.js","webpack://xgplayer/./src/skin/controls/error.js","webpack://xgplayer/./src/skin/style/controls/error.scss?e5b6","webpack://xgplayer/./src/skin/style/controls/error.scss","webpack://xgplayer/./src/skin/controls/memoryPlay.js","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss?c195","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss","webpack://xgplayer/./src/skin/controls/airplay.js","webpack://xgplayer/./src/skin/assets/airplay.svg","webpack://xgplayer/./src/skin/style/controls/airplay.scss?87e1","webpack://xgplayer/./src/skin/style/controls/airplay.scss"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","createDom","hasClass","addClass","removeClass","toggleClass","findDom","padStart","format","event","typeOf","deepCopy","getBgImage","copyDom","_setInterval","_clearInterval","createImgBtn","isWeiXin","isUc","computeWatchDur","offInDestroy","on","once","getBuffered2","checkIsBrowser","setStyle","checkWebkitSetPresentationMode","video","webkitSetPresentationMode","el","tpl","attrs","cname","dom","document","createElement","className","innerHTML","keys","forEach","item","setAttribute","classList","Array","some","match","RegExp","replace","split","add","remove","reg","sel","querySelector","e","indexOf","getElementById","slice","str","length","pad","charstr","String","len","maxlen","Math","ceil","chars","push","join","substring","time","isNaN","hour","floor","minute","second","touches","touch","changedTouches","clientX","clientY","offsetX","pageX","target","offsetLeft","offsetY","pageY","offsetTop","_target","srcElement","obj","toString","dst","src","Node","concat","url","currentStyle","getComputedStyle","backgroundImage","a","href","nodeType","back","tagName","attributes","node","context","eventName","intervalFunc","frequency","_interval","setInterval","clearInterval","imgUrl","width","height","btn","style","w","h","unit","every","Number","trim","backgroundSize","margin","navigator","userAgent","toLowerCase","played","arr","end","begin","j","splice","b","min","max","watch_dur","fn","offEvent","onDestroy","off","_fn","data","vbuffered","maxHoleDuration","buffered","start","sort","diff","buffered_2","buf2len","buf2end","XgplayerTimeRange","elem","error","setProperty","PresentationMode","PIP","INLINE","FULLSCREEN","util","useSourceMap","list","this","map","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","id","memo","stylesInDom","isOldIE","all","atob","apply","arguments","getTarget","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","createStyleElement","type","addAttrs","update","result","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","autoFixUrls","undefined","convertToAbsoluteUrls","blob","oldSrc","_undefined","require","val","ErrorTypes","network","code","msg","remark","mse","parse","decoder","runtime","timeout","other","currentTime","duration","networkState","readyState","currentSrc","ended","errd","line","handle","version","errorCode","mediaError","playerVersion","errorType","domain","ex","arg","sniffer","os","isPc","ua","ie","firfox","chrome","opera","safari","test","isWindowsPhone","isSymbian","isAndroid","isFireFox","isTablet","isPhone","bufferedList","Player","config","ignores","whitelist","lang","documentElement","getAttribute","language","toLocaleLowerCase","inactive","volume","controls","controlsList","userTimer","waitTimer","history","isProgressMoving","unselectable","onselectstart","isShowControl","display","emit","Errors","vid","console","device","fluid","execBeforePluginsCall","closeI18n","install","s_i18n","method","controlStyle","self","fetch","headers","Accept","then","res","ok","json","prop","pluginsCall","catch","err","log","controlPlugins","controlsRun","ev","evName","evFunc","charAt","toUpperCase","player","mousemoveFunc","closeFocusVideoFocus","focus","addEventListener","playFunc","closePlayVideoFocus","getVideoSize","videoWidth","videoHeight","containerSize","getBoundingClientRect","fitVideoSize","setTimeout","isReady","videoInit","rotate","updateRotateDeg","removeEventListener","danmu","resize","canPlayFunc","playPromise","play","autoplay","disableStartLoad","load","attachVideo","reloadFunc","isDelDom","k","bulletResizeTimer","destroyFunc","removeAttribute","classNameList","checkTimer","clearTimeout","loadeddataFunc","replayFunc","keyShortcut","onKeydown","_replay","browser","Function","param","defaultUserGestureEventHandler","userGestureEventMiddleware","plugins","descriptor","warn","enablePausedInactive","paused","closeInactive","isSeeking","onWaiting","use","controlLst","control","Proxy","HAVE_NOTHING","HAVE_METADATA","HAVE_CURRENT_DATA","HAVE_FUTURE_DATA","HAVE_ENOUGH_DATA","NETWORK_EMPTY","NETWORK_IDLE","NETWORK_LOADING","NETWORK_NO_SOURCE","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","REPLAY","ERROR","PLAY_TIPS","PAUSE_TIPS","PLAYNEXT_TIPS","DOWNLOAD_TIPS","ROTATE_TIPS","RELOAD_TIPS","FULLSCREEN_TIPS","EXITFULLSCREEN_TIPS","CSSFULLSCREEN_TIPS","EXITCSSFULLSCREEN_TIPS","TEXTTRACK","MINIPLAYER","SCREENSHOT","LIVE","OFF","MINIPLAYER_DRAG","AIRPLAY_TIPS","set","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_typeof","typeof","iterator","obj2","constructor","_defineProperties","props","configurable","writable","_toPropertyKey","_defineProperty","_getPrototypeOf","getPrototypeOf","setPrototypeOf","o2","__proto__","_setPrototypeOf","p2","_isNativeReflectConstruct","Reflect","construct","sham","valueOf","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","TypeError","_superPropBase","_get","receiver","desc","_toPrimitive","input","hint","prim","toPrimitive","assertThisInitialized","classCallCheck","instance","Constructor","createClass","protoProps","staticProps","createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","inherits","subClass","superClass","isNativeReflectConstruct","objectSpread2","getOwnPropertyDescriptors","defineProperties","possibleConstructorReturn","superPropBase","toPropertyKey","_hasStart","videoConfig","playsinline","airplay","tabindex","mediaType","muted","loop","textTrackDom","textTrackShowDefault","nativeTextTrack","isArray","track","default","label","kind","srclang","crossorigin","textTrackStyle","styleStr","wrap","sheet","insertRule","addRule","XgVideoProxy","videoStyle","getElementsByTagName","autoplayMuted","lastBuffer","defaultVideoEventHandler","hasStart","inWaitingStart","Date","getTime","_onError","curBuffer","videoEventHandler","videoEventMiddleware","evItem","pause","canPlayType","range","bool","isTrue","crossOrigin","isFinite","replay","defaultMuted","status","en","cn","playbackRate","rate","preload","seekable","seeking","posterUrl","poster","vol","methods","descriptors","callable","listener","__eeOnceListener__","__ee__","listeners","candidate","args","isValue","isPlainFunction","assign","normalizeOpts","contains","dscr","gs","isFunction","classRe","functionToString","isPrototype","isObject","possibleTypes","foo","bar","trzy","dest","process","opts1","searchString","emitter","function","locals","location","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","clk","_click_","clickedTime","first","onReady","onElementTouchend","isTouchMove","element","closeVideoPreventDefault","preventDefault","closeVideoStopPropagation","stopPropagation","closeVideoTouch","onTouch","closeVideoClick","enableVideoDbltouch","abs","onElementClick","onElementDblclick","closeVideoDblclick","fullscreen","createEvent","initEvent","Event","dispatchEvent","onMouseEnter","onMouseLeave","closeControlsBlur","leavePlayerTimer","closePlayerBlur","leavePlayerTime","onCanPlay","onStartBtnClick","mediaSource","StartPlayIcon","StartPauseIcon","onPlayerReady","enableContextmenu","hideStartBtn","onclick","userGestureTrigEvent","onFullscreenBtnClick","rotateFullscreen","exitRotateFullscreen","getRotateFullscreen","exitFullscreen","getFullscreen","onFullscreenChange","fullscreenEl","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","onWebkitpresentationmodechanged","webkitPresentationMode","requestFullscreen","fullscreenPromise","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","webkitSupportsFullscreen","webkitEnterFullscreen","msRequestFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","onPlayBtnClick","allowPlayAfterEnded","onReplayBtnClick","playBtn","PlayIcon","PauseIcon","tipsText","tips","playceholder","fullscreenBtn","request","RequestFullIcon","ExitFullIcon","requestfull","exitfull","container","Loading","isRotateFullscreen","containerWidth","progress","outer","cache","point","thumbnail","dotEvent","dotItem","text","dotArr","onCanplay","progressDot","dot","left","addProgressDot","removeProgressDot","removeAllProgressDot","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","interval","tnailUrls","coverPreviewContainer","coverPreviewPoint","onLoadedmetadata","isShowCoverPreview","pic_num","col","row","urls","disableSwipeHandler","enableSwipeHandler","disableSwipe","events","pop","disableProgress","allowSeekAfterEnded","isRotate","top","move","now","allowSeekPlayed","toFixed","maxPlayedTime","dash","closeMoveSeek","indexInPage","tnaiRowIndex","tnaiColIndex","up","passive","blur","containerLeft","compute","textContent","pointWidth","leave","onTimeupdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","onCacheUpdate","cacheUpdateEvents","onTimeChange","replayText","ReplayIcon","onEnded","path","getPropertyValue","svg","_ERROR","ret","ProxyPromise","ProxyPromise2","resolvePromise","rejectPromise","publicPromise","Promise","resolve","reject","state","isBreak","reason","installAll","Airplay","CssFullscreen","Danmu","Definition","Download","ErrorRetryControl","Fullscreen","Keyboard","LocalPreview","MemoryPlay","Miniplayer","Mobile","Pc","Pip","Play","PlayNext","Reload","Replay","Rotate","ScreenShot","StallCheck","Start","Volume","TextTrack","onAirplayBtnClick","webkitShowPlaybackTargetPicker","WebKitPlaybackTargetAvailabilityEvent","onCssFullscreenBtnClick","exitCssFullscreen","getCssFullscreen","danmujs","closeDefaultBtn","onPause","danmuBtn","onPlay","onSeeked","stop","bulletBtn","createSwitch","onDownloadBtnClick","download","getAbsoluteURL","strFileName","strMimeType","reader","defaultMime","mimeType","payload","anchor","myBlob","MozBlob","WebKitBlob","fileName","ajax","XMLHttpRequest","open","responseType","onload","response","send","msSaveBlob","dataUrlToBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","binData","decodeURIComponent","uiArr","winMode","body","click","confirm","f","y","FileReader","readAsDataURL","div","defaultConfig","maxCount","backupUrl","isFetch","fetchTimeout","errorConfig","_inConfig","retryData","count","errfTimer","isFetchReturn","_originErrorEmit","errorCount","resolveFun","xhr","statusText","onerror","onabort","errorfetch","httpCode","httpMsg","retryCanPlay","retryCode","isRepeat","keyCode","repeat","isBody","timer","initEvents","onBodyKeydown","onKeyup","cancelBubble","returnValue","handler","checkTarget","handlerKeyCode","changeVolumeSlide","disableLongPress","isLonePress","changeRate","seek","changeVolume","isBack","isLongPress","currentTimeStep","keyShortcutStep","isLoading","keyboardRate","show","isup","volumeStep","keyboard","onUpload","upload","uploadFile","files","lastPlayTime","onMiniplayerBtnClick","exitMiniplayer","getMiniplayer","dragLay","dragHandle","Draggabilly","right","bottom","miniplayerConfig","getSize","Unidragger","extend","jQuery","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","applyGrid","grid","position","_getPosition","startPoint","x","dragPoint","startPosition","onPointerMove","onPointerUp","enable","setHandles","handles","querySelectorAll","bindHandles","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","trigger","_getPositionCoord","_addTransformPosition","styleSide","measure","parentSize","parseFloat","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","pointerDown","okayPointerDown","isEnabled","pointerDownPointer","pointerDownBlur","_bindPostStartEvents","_pointerReset","dragStart","measureContainment","setLeftTop","animate","getContainer","elemSize","elemRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","HTMLElement","moveVector","dragMove","dragX","dragY","gridX","gridY","containDrag","axis","drag","dragEnd","isDragging","positionDrag","_this","requestAnimationFrame","staticClick","setPosition","disable","destroy","unbindHandles","removeData","_init","bridget","getStyleSize","num","logError","message","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","padding","borderStyle","borderWidth","boxSizing","round","setup","size","innerWidth","innerHeight","outerWidth","outerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","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","isOkay","focused","activeElement","pointerMove","_dragPointerMove","_dragMove","hasDragStarted","_dragStart","pointerUp","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","EvEmitter","bindStartEvent","unbindStartEvent","startEvent","handleEvent","getTouch","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","onpointerdown","isPointerDown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","_events","onceEvents","_onceEvents","onceListeners","allOff","onPipBtnClick","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","pMode","pictureInPictureWindow","pipWindow","nextBtn","playNext","onPlayNextBtnClick","currentVideoIndex","urlList","onReloadBtnClick","reload","rotateConfig","onRotateBtnClick","clockwise","innerRotate","rotateDeg","targetWidth","targetHeight","controlsFix","scale","transformOrigin","webKitTransform","times","factor","screenShotOptions","screenShot","callBack","encoderOptions","quality","canvas","canvasCtx","getContext","img","Image","saveScreenShot","filename","saveLink","initMouseEvent","save","saveImg","drawImage","toDataURL","screenShotImg","saveFileName","enableStallCheck","lastCurrentTime","stallFlag","stallCheckTimer","slider","selected","onVolumeChange","onVolumeBarClick","barRect","pos","isMove","onMove","onUp","onVolumeIconClick","onVolumeIconEnter","onVolumeIconLeave","_changeTimer","containerHeight","defaultStyle","follow","followBottom","fitVideo","offsetBottom","baseSizeX","baseSizeY","minSize","minMobileSize","fontColor","XgSubtitles","subtitle","attachPlayer","positionData","vBottom","isActive","onSubtitleResize","onFocus","onBlur","textTrack","defaultOpen","subTitles","SubTitles","switch","switchOff","subtitles","showDefault","isNeedMove","setSubTitles","isDefault","needRemove","isListUpdate","switchSubTitle","switchOffSubtile","formatUrl","IS_MOBILE","Subtitle","_EventEmitter","Subtitle2","_super","_isOpen","_this$player$video","_videoMeta","_onResize","curTime","_getPlayerCurrentTime","_ctime","currentText","updateMode","_liveUpdate","_update","_assertThisInitialize","domRender","_iId","_this$player$video2","__startResize","_onSubtitleSegment","_onSubtitlePlaylist","_onCoreSeiintime","e2","detachPlayer","removeAllListeners","isMobile","currentExtText","_cid","_gid","_cids","_iC","debugger","_loadingTrack","lwidth","lheight","vWidth","vHeight","vLeft","seiTime","lastSeiTime","_curTexts","_this2","isOpen","ieRemoveFirst","innerRoot","_log","_loadTrack","addStyles","subTitle","_this3","checkSubtitle","_isCurrent","_loadTrackUrls","addCSS","_this4","_this$config","color","addObserver","_onTimeupdate","_onCoreEvents","unObserver","_this5","_updateCurrent","switchOn","nextSubtitle","__removeByTime","_emitPlayerSwitch","_err2","err2","_err3","_err","_this6","EVENTS","CHANGE","hide","_console","_len2","_key","_this7","promise","contentType","stringContent","loadSubTitle","_pushList","curSubtitle","nextSubTitle","_this8","loadingCount","finally","dist","_start","_end","_index","i2","_this9","__remove","_this10","oldArr","newArr","includes","_this11","findIndexByTime","findCIndexByTime","getItemsByIndex","_len","_si","__render","_this12","delCids","getDelCid","newCids","getNewCid","texts","textExt","subtitleList","mUrl","sn","_sub","updateSubTitle","sei","_this13","_this$config2","_size","fontSize","mini","RESIZE","_this14","rect","ids","_this15","children","removeIndex","_this16","jsonItems","jsonItem","attr","_get2","_len3","_key2","callback","_get3","_len4","_key3","_get4","_len5","_key4","_get5","_len6","_key5","_this$_videoMeta","EventEmitter","has","prefix","Events","EE","addListener","evt","_eventsCount","clearEvent","eventNames","names","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","prefixed","orgClassName","SubTitleParser","parseJson","preTag","styleTag","func","disabled","textNode","gid","cids","gList","XHR","data2","VTT_CHECK","VTT_STYLE","VTT_CUE","VTT_CUEND","ASS_CHECK","TIME_REGEX_LIST","ASS_FORMAT","ASS_STYLE","ASS_DIALOGUE","getSecond","isNumber","getByIndex","SubTitleParser2","fun","checkFormat","parseASS","parseVTT","values","textTag","retData","groupCount","lastSubTitle","parseASSItem","_lastSubTitle","group","keyArr","isLastSpace","isCueStart","styleInfo","styleHeader","_str","cueMatch","exec","checkIsTime","parseVttTime","_lastSubTitle2","parseVttText","tag","langMatch","retText","textMatch","tagsReg","re","aArr","bArr","XHR2","_ref","_ref$method","_ref$type","_ref$timeout","_ref$data","R","_method","_data","ontimeout","setRequestHeader","ResizeObserver","ResizeObserver2","__handlers","observer","entries","__trigger","observe","unobserve","disconnect","cr","contentRect","__runHandler","resizeObserver","UPDATE","I18n","Enter","Poster","Flex","Progress","Time","PlaybackRate","NativeTextTrack","ErrorControl","barStr","enter","cssFullscreen","RequestCssFullIcon","ExitCssFullIcon","LargeIcon","SmallIcon","MutedIcon","icon","onCanplayResourceReady","definitionList","tmp","switchURL","_options","_mediaDataSource","originUrl","cursrc","urlInRoot","cur","definitionActive","onResourceReady","onPlayingChangeDefinition","onTimeupdateChangeDefinition","li","to","from","curRUL","getCurrentDefinition","liList","switchDefinition","definitionObj","playbackRateList","playbackRateUnit","playbackRateActive","selectedSpeed","defaultPlaybackRate","playbackDom","switchPlaybackRate","playbackRateObj","preview","uploadEl","onchange","DownloadIcon","comments","area","panelBtn","panel","PanelIcon","DanmuJs","focusStatus","danmuConfig","hidemodeArray","transparency","transparencyGradient","transparencyValue","background","opacity","showareaValue","main","channel","danmuspeedValue","danmufontValue","startsWith","attachEventListener","styleUtil","styleCSSText","throttle","logger","u","setLogger","info","overlap","lines","live","direction","needResizeObserver","dropStaleComments","channelSize","maxCommentsLength","bulletOffset","highScorePriority","hideArr","domObj","freezeId","containerStyle","addResizeObserver","clear","txt","prior","realTime","unshift","readData","dataHandle","keepPoolWatermark","queue","pauseMove","startMove","like","setLikeDom","_releaseCtrl","mouseControl","_freezeCtrl","dataElHandle","sortData","forceDuration","playRate","reflow","setFontSize","channel_id","topInit","resizeSync","bullets","displayArea","getRealOccupyArea","containerPos","g","v","constructorName","defaultOff","switchBtn","playedData","retryStatus","_status","updateQueue","handleId","handleTimer","_cancelDataHandleTimer","bullet","attached_","reset","init","channels","resized","score","updatePos","bulletCreateFail","attach","addBullet","detach","noDiscard","onElDestroy","Bullet","bookChannelId","reuseDOM","disableCopyDOM","eventListeners","useCapture","onChangeDirection","random","updateOffset","elPos","moveV","mouseoverFunWrapper","mouseoverFun","mouseEnterControl","mouseEnterFunWrapper","_onTransitionEnd","unused","mouseControlPause","_moveV","moveTime","moveMoreS","moveContainerHeight","moveContainerWidth","pastDuration","startTime","hasMove","outerHTML","removeBullet","_cancelResizeTimer","resetId","cancelAnimationFrame","_initChannels","channelCount","channelWidth","channelHeight","containerTop","containerBottom","containerRight","operating","scroll","bookId","_","O","bOffset","E","C","M","T","L","P","S","z","D","I","q","A","U","validAreaLineRule","resizing","resizeId","isInteger","initDOM","initSize","idleList","usingList","_id","_expand","shift","textcontent","clearElementStyle","destroyObserver","hmr","webpackPolyfill","deprecate","paths","pip","miniplayer","PlayNextIcon","onUrlListEnd","RotateIcon","ReloadIcon","hideButton","screenShotText","iconText","controlText","textTrackActive","trackDoms","ul","renderList","offText","isDefaultShow","errorTips","refresh","onError","lastPlayTimeHideDelay","removeFunc","AirplayIcon","availability","hidden"],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"xgplayer\"] = factory();\n\telse\n\t\troot[\"xgplayer\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 82);\n","import XgplayerTimeRange from './xgplayerTimeRange'\n\nexport function createDom(el = 'div', tpl = '', attrs = {}, cname = '') {\n let dom = document.createElement(el)\n dom.className = cname\n dom.innerHTML = tpl\n Object.keys(attrs).forEach(item => {\n let key = item\n let value = attrs[item]\n if (el === 'video' || el === 'audio') {\n if (value) {\n dom.setAttribute(key, value)\n }\n } else {\n dom.setAttribute(key, value)\n }\n })\n return dom\n}\n\nexport function hasClass(el, className) {\n if (!el) {\n return false;\n }\n\n if (el.classList) {\n return Array.prototype.some.call(el.classList, item => item === className)\n } else if (el.className) {\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'))\n } else {\n return false;\n }\n}\n\nexport function addClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n className.replace(/(^\\s+|\\s+$)/g, '').split(/\\s+/g).forEach(item => {\n item && el.classList.add(item)\n })\n } else if (!hasClass(el, className)) {\n el.className += ' ' + className\n }\n}\n\nexport function removeClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n className.split(/\\s+/g).forEach(item => {\n el.classList.remove(item)\n })\n } else if (hasClass(el, className)) {\n className.split(/\\s+/g).forEach(item => {\n let reg = new RegExp('(\\\\s|^)' + item + '(\\\\s|$)')\n el.className = el.className.replace(reg, ' ')\n })\n }\n}\n\nexport function toggleClass(el, className) {\n if (!el) {\n return;\n }\n\n className.split(/\\s+/g).forEach(item => {\n if (hasClass(el, item)) {\n removeClass(el, item)\n } else {\n addClass(el, item)\n }\n })\n}\n\nexport function findDom(el = document, sel) {\n let dom\n // fix querySelector IDs that start with a digit\n // https://stackoverflow.com/questions/37270787/uncaught-syntaxerror-failed-to-execute-queryselector-on-document\n try {\n dom = el.querySelector(sel)\n } catch (e) {\n if (sel.indexOf('#') === 0) {\n dom = el.getElementById(sel.slice(1))\n }\n }\n return dom\n}\n\nexport function padStart(str, length, pad) {\n let charstr = String(pad)\n let len = length >> 0\n let maxlen = Math.ceil(len / charstr.length)\n let chars = []\n let r = String(str)\n while (maxlen--) {\n chars.push(charstr)\n }\n return chars.join('').substring(0, len - r.length) + r\n}\n\nexport function format(time) {\n if (window.isNaN(time)) {\n return ''\n }\n let hour = padStart(Math.floor(time / 3600), 2, 0)\n let minute = padStart(Math.floor((time - hour * 3600) / 60), 2, 0)\n let second = padStart(Math.floor((time - hour * 3600 - minute * 60)), 2, 0)\n return (hour === '00' ? [minute, second] : [hour, minute, second]).join(':')\n}\n\nexport function event(e) {\n if (e.touches) {\n let touch = e.touches[0] || e.changedTouches[0]\n e.clientX = touch.clientX || 0\n e.clientY = touch.clientY || 0\n e.offsetX = touch.pageX - touch.target.offsetLeft\n e.offsetY = touch.pageY - touch.target.offsetTop\n }\n e._target = e.target || e.srcElement\n}\n\nexport function typeOf(obj) {\n return Object.prototype.toString.call(obj).match(/([^\\s.*]+)(?=]$)/g)[0]\n}\n\nexport function deepCopy(dst, src) {\n if (typeOf(src) === 'Object' && typeOf(dst) === 'Object') {\n Object.keys(src).forEach(key => {\n if (typeOf(src[key]) === 'Object' && !(src[key] instanceof Node)) {\n if (!dst[key]) {\n dst[key] = src[key]\n } else {\n deepCopy(dst[key], src[key])\n }\n } else if (typeOf(src[key]) === 'Array') {\n dst[key] = typeOf(dst[key]) === 'Array' ? dst[key].concat(src[key]) : src[key]\n } else {\n dst[key] = src[key]\n }\n })\n return dst\n }\n}\nexport function getBgImage(el) {\n // fix: return current page url when url is none\n let url = (el.currentStyle || window.getComputedStyle(el, null)).backgroundImage\n if (!url || url === 'none') {\n return ''\n }\n let a = document.createElement('a')\n a.href = url.replace(/url\\(\"|\"\\)/g, '')\n return a.href\n}\n\nexport function copyDom(dom) {\n if (dom && dom.nodeType === 1) {\n let back = document.createElement(dom.tagName)\n Array.prototype.forEach.call(dom.attributes, (node) => {\n back.setAttribute(node.name, node.value)\n })\n if (dom.innerHTML) {\n back.innerHTML = dom.innerHTML\n }\n return back\n } else {\n return ''\n }\n}\n\nexport function _setInterval(context, eventName, intervalFunc, frequency) {\n if (!context._interval[eventName]) {\n context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency)\n }\n}\n\nexport function _clearInterval(context, eventName) {\n clearInterval(context._interval[eventName])\n context._interval[eventName] = null\n}\n\nexport function createImgBtn(name, imgUrl, width, height) {\n let btn = createDom(`xg-${name}`, '', {}, `xgplayer-${name}-img`)\n btn.style.backgroundImage = `url(\"${imgUrl}\")`\n if (width && height) {\n let w, h, unit\n ['px', 'rem', 'em', 'pt', 'dp', 'vw', 'vh', 'vm', '%'].every((item) => {\n if (width.indexOf(item) > -1 && height.indexOf(item) > -1) {\n w = Number(width.slice(0, width.indexOf(item)).trim())\n h = Number(height.slice(0, height.indexOf(item)).trim())\n unit = item\n return false\n } else {\n return true\n }\n })\n btn.style.width = `${w}${unit}`\n btn.style.height = `${h}${unit}`\n btn.style.backgroundSize = `${w}${unit} ${h}${unit}`\n if (name === 'start') {\n btn.style.margin = `-${h / 2}${unit} auto auto -${w / 2}${unit}`\n } else {\n btn.style.margin = 'auto 5px auto 5px'\n }\n }\n return btn\n}\n\nexport function isWeiXin() {\n let ua = window.navigator.userAgent.toLowerCase()\n return ua.indexOf('micromessenger') > -1\n}\n\nexport function isUc() {\n let ua = window.navigator.userAgent.toLowerCase()\n return ua.indexOf('ucbrowser') > -1\n}\n\nexport function computeWatchDur(played = []) {\n let arr = []\n for (let i = 0; i < played.length; i++) {\n if(!played[i].end || played[i].begin < 0 || played[i].end < 0 || played[i].end < played[i].begin) {\n continue\n }\n if(arr.length < 1) {\n arr.push({begin: played[i].begin, end: played[i].end})\n } else {\n for (let j = 0; j < arr.length; j++) {\n let begin = played[i].begin\n let end = played[i].end\n if(end < arr[j].begin) {\n arr.splice(j, 0, {begin, end})\n break\n } else if(begin > arr[j].end) {\n if(j > arr.length - 2) {\n arr.push({begin, end})\n break\n }\n } else {\n let b = arr[j].begin\n let e = arr[j].end\n arr[j].begin = Math.min(begin, b)\n arr[j].end = Math.max(end, e)\n break\n }\n }\n }\n }\n let watch_dur = 0\n for (let i = 0; i < arr.length; i++) {\n watch_dur += arr[i].end - arr[i].begin\n }\n return watch_dur\n}\n\nexport function offInDestroy(object, event, fn, offEvent) {\n function onDestroy () {\n object.off(event, fn)\n object.off(offEvent, onDestroy)\n }\n object.once(offEvent, onDestroy)\n}\n\nexport function on(object, event, fn, offEvent) {\n if (offEvent) {\n object.on(event, fn)\n offInDestroy(object, event, fn, offEvent)\n } else {\n let _fn = data => {\n fn(data)\n object.off(event, _fn)\n }\n object.on(event, _fn)\n }\n}\n\nexport function once(object, event, fn, offEvent) {\n if (offEvent) {\n object.once(event, fn)\n offInDestroy(object, event, fn, offEvent)\n } else {\n let _fn = data => {\n fn(data)\n object.off(event, _fn)\n }\n object.once(event, _fn)\n }\n}\n\nexport function getBuffered2(vbuffered, maxHoleDuration = 0.5) { //ref: hls.js\n let buffered = []\n for (let i = 0; i < vbuffered.length; i++) {\n buffered.push({ start: vbuffered.start(i) < 0.5 ? 0 : vbuffered.start(i), end: vbuffered.end(i) });\n }\n buffered.sort(function (a, b) {\n let diff = a.start - b.start;\n if (diff) {\n return diff;\n } else {\n return b.end - a.end;\n }\n });\n let buffered_2 = []\n if (maxHoleDuration) {\n for (let i = 0; i < buffered.length; i++) {\n let buf2len = buffered_2.length\n if (buf2len) {\n let buf2end = buffered_2[buf2len - 1].end\n if ((buffered[i].start - buf2end) < maxHoleDuration) {\n if (buffered[i].end > buf2end) {\n buffered_2[buf2len - 1].end = buffered[i].end\n }\n } else {\n buffered_2.push(buffered[i])\n }\n } else {\n buffered_2.push(buffered[i])\n }\n }\n } else {\n buffered_2 = buffered\n }\n return new XgplayerTimeRange(buffered_2)\n}\n\nexport function checkIsBrowser() {\n return !(typeof(window) === 'undefined' || typeof(window.document) === 'undefined' || typeof(window.document.createElement) === 'undefined')\n}\n\nexport function setStyle(elem, name, value) {\n let style = elem.style;\n try {\n style[name] = value;\n } catch (error) {\n style.setProperty( name, value );\n }\n}\n\nexport const PresentationMode = {\n PIP: 'picture-in-picture',\n INLINE: 'inline',\n FULLSCREEN: 'fullscreen'\n}\n\nexport function checkWebkitSetPresentationMode (video) {\n return typeof video.webkitSetPresentationMode === 'function'\n}\n\nexport const util = {\n createDom, hasClass, addClass, removeClass, toggleClass, findDom, padStart, format, event, typeOf, \n deepCopy, getBgImage, copyDom, setInterval: _setInterval, clearInterval: _clearInterval, createImgBtn, isWeiXin, isUc, computeWatchDur,\n offInDestroy, on, once, getBuffered2, checkIsBrowser, setStyle\n}\n\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","import {version} from '../version.json'\nconst ErrorTypes = {\n network: {\n code: 1,\n msg: '视频下载错误',\n remark: '只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在'\n },\n mse: {\n code: 2,\n msg: '流追加错误',\n remark: '追加流的时候如果类型不对、无法被正确解码则会触发此类错误'\n },\n parse: {\n code: 3,\n msg: '解析错误',\n remark: 'mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误'\n },\n format: {\n code: 4,\n msg: '格式错误',\n remark: '如果浏览器不支持的格式导致播放错误'\n },\n decoder: {\n code: 5,\n msg: '解码错误',\n remark: '浏览器解码异常会抛出此类型错误'\n },\n runtime: {\n code: 6,\n msg: '语法错误',\n remark: '播放器语法错误'\n },\n timeout: {\n code: 7,\n msg: '播放超时',\n remark: '播放过程中无法正常请求下一个分段导致播放中断'\n },\n other: {\n code: 8,\n msg: '其他错误',\n remark: '不可知的错误或被忽略的错误类型'\n }\n}\n\nclass Errors {\n constructor (type, currentTime, duration, networkState, readyState, src, currentSrc,\n ended, errd = {line: '', handle: '', msg: '', version: ''}, errorCode, mediaError) {\n let r = {}\n if (arguments.length > 1) {\n r.playerVersion = version // 播放器版本\n r.errorType = type\n r.domain = document.domain // domain\n r.duration = duration // 视频时长\n r.currentTime = currentTime\n r.networkState = networkState\n r.readyState = readyState\n r.currentSrc = currentSrc\n r.src = src\n r.ended = ended\n r.errd = errd // 错误详情\n r.ex = (ErrorTypes[type] || {}).msg // 补充信息\n r.errorCode = errorCode\n r.mediaError = mediaError\n } else {\n const arg = arguments[0]\n Object.keys(arg).map(key => {\n r[key] = arg[key]\n })\n r.ex = ((arg.type && ErrorTypes[arg.type]) || {}).msg\n }\n return r\n }\n}\nexport default Errors\n","let sniffer = {}\n\nObject.defineProperty(sniffer, 'device', {\n get: function () {\n let r = sniffer.os\n return r.isPc ? 'pc' : 'mobile'\n // return r.isPc ? 'pc' : r.isTablet ? 'tablet' : 'mobile'\n }\n})\n\nObject.defineProperty(sniffer, 'browser', {\n get: function () {\n let ua = navigator.userAgent.toLowerCase()\n let reg = {\n ie: /rv:([\\d.]+)\\) like gecko/,\n firfox: /firefox\\/([\\d.]+)/,\n chrome: /chrome\\/([\\d.]+)/,\n opera: /opera.([\\d.]+)/,\n safari: /version\\/([\\d.]+).*safari/\n }\n return [].concat(Object.keys(reg).filter(key => reg[key].test(ua)))[0] || ''\n }\n})\n\nObject.defineProperty(sniffer, 'os', {\n get: function () {\n let ua = navigator.userAgent\n let isWindowsPhone = /(?:Windows Phone)/.test(ua)\n let isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone\n let isAndroid = /(?:Android)/.test(ua)\n let isFireFox = /(?:Firefox)/.test(ua)\n let isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua))\n let isPhone = /(?:iPhone)/.test(ua) && !isTablet\n let isPc = !isPhone && !isAndroid && !isSymbian && !isTablet\n return {\n isTablet,\n isPhone,\n isAndroid,\n isPc,\n isSymbian,\n isWindowsPhone,\n isFireFox\n }\n }\n})\n\nexport default sniffer\n","\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n","export default class XgplayerTimeRange {\n constructor(bufferedList) {\n this.bufferedList = bufferedList\n }\n\n start (index) {\n return this.bufferedList[index].start\n }\n\n end (index) {\n return this.bufferedList[index].end\n }\n\n get length () {\n return this.bufferedList.length\n }\n}\n","import Proxy from './proxy'\nimport { util, deepCopy, findDom, createDom, addClass, typeOf, hasClass, removeClass, checkIsBrowser } from './utils/util'\nimport sniffer from './utils/sniffer'\nimport XgplayerTimeRange from './utils/xgplayerTimeRange'\nimport Errors from './error'\nimport allOff from 'event-emitter/all-off'\nimport s_i18n from './skin/controls/i18n.js'\nimport './skin/style/index.scss'\n\nimport {\n version\n} from '../version.json'\nclass Player extends Proxy {\n constructor (options) {\n super(options)\n this.config = deepCopy({\n width: 600,\n height: 337.5,\n ignores: [],\n whitelist: [],\n lang: (document.documentElement.getAttribute('lang') || navigator.language || 'zh-cn').toLocaleLowerCase(),\n inactive: 3000,\n volume: 0.6,\n controls: true,\n controlsList: ['nodownload']\n }, options)\n this.version = version\n this.userTimer = null\n this.waitTimer = null\n this.history = []\n this.isProgressMoving = false\n this.root = findDom(document, `#${this.config.id}`)\n this.controls = createDom('xg-controls', '', {\n unselectable: 'on',\n onselectstart: 'return false'\n }, 'xgplayer-controls')\n if (this.config.isShowControl) {\n this.controls.style.display = 'none'\n }\n if (!this.root) {\n let el = this.config.el\n if (el && el.nodeType === 1) {\n this.root = el\n } else {\n this.emit('error', new Errors({\n type: 'use',\n errd: {\n line: 45,\n handle: 'Constructor',\n msg: 'container id can\\'t be empty'\n },\n vid: this.config.vid\n }))\n console.error('container id can\\'t be empty')\n return false\n }\n }\n // this.rootBackup = copyDom(this.root)\n addClass(this.root, `xgplayer xgplayer-${sniffer.device} xgplayer-nostart xgplayer-pause ${this.config.controls ? '' : 'xgplayer-no-controls'}`)\n this.root.appendChild(this.controls)\n if (this.config.fluid) {\n this.root.style['max-width'] = '100%'\n this.root.style['width'] = '100%'\n this.root.style['height'] = '0'\n this.root.style['padding-top'] = `${this.config.height * 100 / this.config.width}%`\n\n this.video.style['position'] = 'absolute'\n this.video.style['top'] = '0'\n this.video.style['left'] = '0'\n } else {\n // this.root.style.width = `${this.config.width}px`\n // this.root.style.height = `${this.config.height}px`\n if (this.config.width) {\n if (typeof this.config.width !== 'number') {\n this.root.style.width = this.config.width\n } else {\n this.root.style.width = `${this.config.width}px`\n }\n }\n if (this.config.height) {\n if (typeof this.config.height !== 'number') {\n this.root.style.height = this.config.height\n } else {\n this.root.style.height = `${this.config.height}px`\n }\n }\n }\n if (this.config.execBeforePluginsCall) {\n this.config.execBeforePluginsCall.forEach(item => {\n item.call(this, this)\n })\n }\n if(!this.config.closeI18n) {\n Player.install(s_i18n.name, s_i18n.method)\n }\n if (this.config.controlStyle && typeOf(this.config.controlStyle) === 'String') {\n let self = this\n fetch(self.config.controlStyle, {\n method: 'GET',\n headers: {\n Accept: 'application/json'\n }\n }).then(function (res) {\n if (res.ok) {\n res.json().then(function (obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n self.config[prop] = obj[prop]\n }\n }\n self.pluginsCall()\n })\n }\n }).catch(function (err) {\n console.log('Fetch错误:' + err)\n })\n } else {\n this.pluginsCall()\n }\n if(this.config.controlPlugins) {\n Player.controlsRun(this.config.controlPlugins, this)\n }\n this.ev.forEach((item) => {\n let evName = Object.keys(item)[0]\n let evFunc = this[item[evName]]\n if (evFunc) {\n this.on(evName, evFunc)\n }\n });\n\n ['focus', 'blur'].forEach(item => {\n this.on(item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)])\n })\n let player = this\n this.mousemoveFunc = function () {\n player.emit('focus')\n if (!player.config.closeFocusVideoFocus) {\n player.video.focus()\n }\n }\n this.root.addEventListener('mousemove', this.mousemoveFunc)\n this.playFunc = function () {\n player.emit('focus')\n if (!player.config.closePlayVideoFocus) {\n player.video.focus()\n }\n }\n player.once('play', this.playFunc)\n\n this.getVideoSize = function () {\n if (this.video.videoWidth && this.video.videoHeight) {\n let containerSize = player.root.getBoundingClientRect()\n if (player.config.fitVideoSize === 'auto') {\n if (containerSize.width / containerSize.height > this.video.videoWidth / this.video.videoHeight) {\n player.root.style.height = `${this.video.videoHeight / this.video.videoWidth * containerSize.width}px`\n } else {\n player.root.style.width = `${this.video.videoWidth / this.video.videoHeight * containerSize.height}px`\n }\n } else if (player.config.fitVideoSize === 'fixWidth') {\n player.root.style.height = `${this.video.videoHeight / this.video.videoWidth * containerSize.width}px`\n } else if (player.config.fitVideoSize === 'fixHeight') {\n player.root.style.width = `${this.video.videoWidth / this.video.videoHeight * containerSize.height}px`\n }\n }\n }\n player.once('loadeddata', this.getVideoSize)\n\n setTimeout(() => {\n this.emit('ready')\n this.isReady = true\n }, 0)\n\n if (this.config.videoInit) {\n if (hasClass(this.root, 'xgplayer-nostart')) {\n this.start()\n }\n }\n if (player.config.rotate) {\n player.on('requestFullscreen', this.updateRotateDeg)\n player.on('exitFullscreen', this.updateRotateDeg)\n }\n\n function onDestroy () {\n player.root.removeEventListener('mousemove', player.mousemoveFunc)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n }\n\n attachVideo () {\n if(this.video && this.video.nodeType === 1) {\n this.root.insertBefore(this.video, this.root.firstChild)\n }\n setTimeout(() => {\n this.emit('complete')\n if(this.danmu && typeof this.danmu.resize === 'function') {\n this.danmu.resize()\n }\n }, 1)\n }\n\n start (url = this.config.url) {\n if(!this.video) return\n let player = this\n if (!url || url === '') {\n this.emit('urlNull')\n return\n }\n this.canPlayFunc = function () {\n player.off('canplay', player.canPlayFunc)\n let playPromise = player.video.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.then(function () {\n player.emit('autoplay started')\n }).catch(function () {\n player.emit('autoplay was prevented')\n addClass(player.root, 'xgplayer-is-autoplay')\n })\n }\n }\n if (typeOf(url) !== 'Array') {\n if (typeOf(url) === 'String' && url.indexOf('blob:') > -1 && url === this.video.src) {\n // 在Chromium环境下用mse url给video二次赋值会导致错误\n } else {\n this.video.src = url\n }\n } else {\n url.forEach(item => {\n this.video.appendChild(createDom('source', '', {\n src: `${item.src}`,\n type: `${item.type || ''}`\n }))\n })\n }\n if (this.config.autoplay) {\n if (sniffer.os.isPhone) {\n this.canPlayFunc()\n } else {\n this.on('canplay', this.canPlayFunc)\n }\n }\n if(!this.config.disableStartLoad) {\n this.video.load()\n }\n this.attachVideo()\n }\n\n reload () {\n this.video.load()\n this.reloadFunc = function () {\n // eslint-disable-next-line handle-callback-err\n let playPromise = this.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n this.once('loadeddata', this.reloadFunc)\n }\n\n destroy (isDelDom = true) {\n let player = this\n clearInterval(this.bulletResizeTimer)\n for (let k in this._interval) {\n clearInterval(this._interval[k])\n this._interval[k] = null\n }\n if (this.checkTimer) {\n clearInterval(this.checkTimer)\n }\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n this.ev.forEach((item) => {\n let evName = Object.keys(item)[0]\n let evFunc = this[item[evName]]\n if (evFunc) {\n this.off(evName, evFunc)\n }\n });\n if (this.loadeddataFunc) {\n this.off('loadeddata', this.loadeddataFunc)\n }\n if (this.reloadFunc) {\n this.off('loadeddata', this.reloadFunc)\n }\n if (this.replayFunc) {\n this.off('play', this.replayFunc)\n }\n if (this.playFunc) {\n this.off('play', this.playFunc)\n }\n if (this.getVideoSize) {\n this.off('loadeddata', this.getVideoSize)\n };\n ['focus', 'blur'].forEach(item => {\n this.off(item, this['on' + item.charAt(0).toUpperCase() + item.slice(1)])\n })\n if (!this.config.keyShortcut || this.config.keyShortcut === 'on') {\n ['video', 'controls'].forEach(item => {\n if (this[item]) {\n this[item].removeEventListener('keydown', function (e) { player.onKeydown(e, player) })\n }\n })\n }\n\n function destroyFunc () {\n this.emit('destroy')\n // this.root.id = this.root.id + '_del'\n // parentNode.insertBefore(this.rootBackup, this.root)\n\n // fix video destroy https://stackoverflow.com/questions/3258587/how-to-properly-unload-destroy-a-video-element\n this.video.removeAttribute('src') // empty source\n this.video.load()\n if (isDelDom) {\n // parentNode.removeChild(this.root)\n this.root.innerHTML = ''\n let classNameList = this.root.className.split(' ')\n if (classNameList.length > 0) {\n this.root.className = classNameList.filter(name => name.indexOf('xgplayer') < 0).join(' ')\n } else {\n this.root.className = ''\n }\n }\n\n for (let k in this) {\n // if (k !== 'config') {\n delete this[k]\n // }\n }\n allOff(this)\n }\n\n // destroy immediately\n // Don't use the paused property detection, it doesn't use MediaElement.paused, \n // so it's not accurate enough. Destroy after waiting for pause event, this \n // changes the synchronous behavior of destroy api\n destroyFunc.call(this)\n\n super.destroy()\n }\n\n replay () {\n let self = this\n let _replay = this._replay\n // ie9 bugfix\n removeClass(this.root, 'xgplayer-ended')\n if(sniffer.browser.indexOf('ie') > -1) {\n this.emit('play')\n this.emit('playing')\n }\n \n if (_replay && _replay instanceof Function) {\n _replay()\n } else {\n this.currentTime = 0\n // eslint-disable-next-line handle-callback-err\n let playPromise = this.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n }\n\n userGestureTrigEvent (name, param) {\n const defaultUserGestureEventHandler = (name, param) => {\n this.emit(name, param)\n }\n if(this.config.userGestureEventMiddleware && typeof this.config.userGestureEventMiddleware[name] === 'function') {\n this.config.userGestureEventMiddleware[name].call(this, this, name, param, defaultUserGestureEventHandler)\n } else {\n defaultUserGestureEventHandler.call(this, name, param);\n }\n }\n\n pluginsCall () {\n if(Player.plugins['s_i18n']) {\n Player.plugins['s_i18n'].call(this, this)\n }\n let self = this\n if (Player.plugins) {\n let ignores = this.config.ignores\n Object.keys(Player.plugins).forEach(name => {\n let descriptor = Player.plugins[name]\n if(!descriptor || typeof descriptor !== 'function'){\n console.warn('plugin name', name , 'is invalid')\n } else {\n if (!ignores.some(item => name === item || name === 's_' + item) && name !== 's_i18n') {\n if (['pc', 'tablet', 'mobile'].some(type => type === name)) {\n if (name === sniffer.device) {\n setTimeout(() => {\n // if destroyed, skip\n if (!self.video) return;\n descriptor.call(self, self)\n }, 0)\n }\n } else {\n descriptor.call(this, this)\n }\n }\n }\n })\n }\n }\n\n onFocus () {\n let player = this\n if(hasClass(this.root, 'xgplayer-inactive')) {\n player.emit('controlShow')\n }\n removeClass(this.root, 'xgplayer-inactive')\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n player.userTimer = setTimeout(function () {\n player.emit('blur')\n }, player.config.inactive)\n }\n\n onBlur () {\n // this.video.blur()\n if ((this.config.enablePausedInactive || !this.paused) && !this.ended && !this.config.closeInactive) {\n if(!hasClass(this.root, 'xgplayer-inactive')) {\n this.emit('controlHide')\n }\n addClass(this.root, 'xgplayer-inactive')\n }\n }\n\n onPlay () {\n addClass(this.root, 'xgplayer-isloading')\n addClass(this.root, 'xgplayer-playing')\n removeClass(this.root, 'xgplayer-pause')\n }\n\n onPause () {\n addClass(this.root, 'xgplayer-pause')\n if (this.userTimer) {\n clearTimeout(this.userTimer)\n }\n this.emit('focus')\n }\n\n onEnded () {\n addClass(this.root, 'xgplayer-ended')\n removeClass(this.root, 'xgplayer-playing')\n }\n\n onSeeking () {\n this.isSeeking = true\n // 兼容IE下无法触发waiting事件的问题 seeking的时候直接出发waiting\n this.onWaiting()\n // addClass(this.root, 'seeking');\n }\n\n // onTimeupdate () {\n // // for ie,playing fired before waiting\n // if (this.waitTimer) {\n // clearTimeout(this.waitTimer)\n // }\n // removeClass(this.root, 'xgplayer-isloading')\n\n // }\n\n onSeeked () {\n // for ie,playing fired before waiting\n this.once('timeupdate', () => {\n this.isSeeking = false\n })\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n removeClass(this.root, 'xgplayer-isloading')\n }\n\n onWaiting () {\n let self = this\n if (self.waitTimer) {\n clearTimeout(self.waitTimer)\n }\n if (self.checkTimer) {\n clearInterval(self.checkTimer)\n self.checkTimer = null\n }\n let time = self.currentTime\n self.waitTimer = setTimeout(function () {\n addClass(self.root, 'xgplayer-isloading')\n self.checkTimer = setInterval(function () {\n if (self.currentTime !== time) {\n removeClass(self.root, 'xgplayer-isloading')\n clearInterval(self.checkTimer)\n self.checkTimer = null\n }\n }, 1000)\n }, 500)\n }\n\n onPlaying () {\n // 兼容safari下无法自动播放会触发该事件的场景\n if (this.paused) {\n return\n }\n this.isSeeking = false\n if (this.waitTimer) {\n clearTimeout(this.waitTimer)\n }\n removeClass(this.root, 'xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay')\n addClass(this.root, 'xgplayer-playing')\n }\n\n static install (name, descriptor) {\n if (!checkIsBrowser()) {\n return\n }\n if (!Player.plugins) {\n Player.plugins = {}\n }\n if (!Player.plugins[name]) {\n Player.plugins[name] = descriptor\n }\n }\n\n static installAll (list) {\n for(let k = 0; k < list.length; k++){\n Player.install(list[k].name, list[k].method)\n }\n }\n\n static use (name, descriptor) {\n if (!Player.plugins) {\n Player.plugins = {}\n }\n Player.plugins[name] = descriptor\n }\n\n static useAll (list) {\n for (let k in list) {\n Player.use(list[k].name, list[k].method)\n }\n }\n\n static controlsRun (controlLst, context) {\n controlLst.forEach(function(control) {\n control.method.call(context)\n })\n }\n}\n\nPlayer.util = util\nPlayer.sniffer = sniffer\nPlayer.Errors = Errors\nPlayer.XgplayerTimeRange = XgplayerTimeRange\n\nexport default Player\n","import { typeOf } from '../../utils/util'\n\nlet s_i18n = function () {\n let player = this; let lang = {};\n lang.en = {\n HAVE_NOTHING: 'There is no information on whether audio/video is ready',\n HAVE_METADATA: 'Audio/video metadata is ready ',\n HAVE_CURRENT_DATA: 'Data about the current play location is available, but there is not enough data to play the next frame/millisecond',\n HAVE_FUTURE_DATA: 'Current and at least one frame of data is available',\n HAVE_ENOUGH_DATA: 'The available data is sufficient to start playing',\n NETWORK_EMPTY: 'Audio/video has not been initialized',\n NETWORK_IDLE: 'Audio/video is active and has been selected for resources, but no network is used',\n NETWORK_LOADING: 'The browser is downloading the data',\n NETWORK_NO_SOURCE: 'No audio/video source was found',\n MEDIA_ERR_ABORTED: 'The fetch process is aborted by the user',\n MEDIA_ERR_NETWORK: 'An error occurred while downloading',\n MEDIA_ERR_DECODE: 'An error occurred while decoding',\n MEDIA_ERR_SRC_NOT_SUPPORTED: 'Audio/video is not supported',\n REPLAY: 'Replay',\n ERROR: 'Network is offline',\n PLAY_TIPS: 'Play',\n PAUSE_TIPS: 'Pause',\n PLAYNEXT_TIPS: 'Play next',\n DOWNLOAD_TIPS: 'Download',\n ROTATE_TIPS: 'Rotate',\n RELOAD_TIPS: 'Reload',\n FULLSCREEN_TIPS: \"Fullscreen\",\n EXITFULLSCREEN_TIPS: 'Exit fullscreen',\n CSSFULLSCREEN_TIPS: 'Cssfullscreen',\n EXITCSSFULLSCREEN_TIPS: 'Exit cssfullscreen',\n TEXTTRACK: 'Caption',\n PIP: 'Pip',\n MINIPLAYER: 'Miniplayer',\n SCREENSHOT: 'Screenshot',\n LIVE: 'LIVE',\n OFF: 'Off',\n MINIPLAYER_DRAG: 'Click and hold to drag',\n AIRPLAY_TIPS: 'Airplay',\n }\n lang['zh-cn'] = {\n HAVE_NOTHING: '没有关于音频/视频是否就绪的信息',\n HAVE_METADATA: '音频/视频的元数据已就绪',\n HAVE_CURRENT_DATA: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒',\n HAVE_FUTURE_DATA: '当前及至少下一帧的数据是可用的',\n HAVE_ENOUGH_DATA: '可用数据足以开始播放',\n NETWORK_EMPTY: '音频/视频尚未初始化',\n NETWORK_IDLE: '音频/视频是活动的且已选取资源,但并未使用网络',\n NETWORK_LOADING: '浏览器正在下载数据',\n NETWORK_NO_SOURCE: '未找到音频/视频来源',\n MEDIA_ERR_ABORTED: '取回过程被用户中止',\n MEDIA_ERR_NETWORK: '当下载时发生错误',\n MEDIA_ERR_DECODE: '当解码时发生错误',\n MEDIA_ERR_SRC_NOT_SUPPORTED: '不支持的音频/视频格式',\n REPLAY: '重播',\n ERROR: '网络连接似乎出现了问题',\n PLAY_TIPS: '播放',\n PAUSE_TIPS: '暂停',\n PLAYNEXT_TIPS: '下一集',\n DOWNLOAD_TIPS: '下载',\n ROTATE_TIPS: '旋转',\n RELOAD_TIPS: '重新载入',\n FULLSCREEN_TIPS: \"进入全屏\",\n EXITFULLSCREEN_TIPS: '退出全屏',\n CSSFULLSCREEN_TIPS: '进入样式全屏',\n EXITCSSFULLSCREEN_TIPS: '退出样式全屏',\n TEXTTRACK: '字幕',\n PIP: '画中画',\n MINIPLAYER: '迷你播放器',\n SCREENSHOT: '截图',\n LIVE: '正在直播',\n OFF: '关闭',\n MINIPLAYER_DRAG: '点击按住可拖动视频',\n AIRPLAY_TIPS: '隔空播放',\n }\n lang['zh-hk'] = {\n HAVE_NOTHING: '沒有關於音頻/視頻是否就緒的信息',\n HAVE_METADATA: '音頻/視頻的元數據已就緒',\n HAVE_CURRENT_DATA: '關於當前播放位置的數據是可用的,但沒有足夠的數據來播放下壹幀/毫秒',\n HAVE_FUTURE_DATA: '當前及至少下壹幀的數據是可用的',\n HAVE_ENOUGH_DATA: '可用數據足以開始播放',\n NETWORK_EMPTY: '音頻/視頻尚未初始化',\n NETWORK_IDLE: '音頻/視頻是活動的且已選取資源,但並未使用網絡',\n NETWORK_LOADING: '瀏覽器正在下載數據',\n NETWORK_NO_SOURCE: '未找到音頻/視頻來源',\n MEDIA_ERR_ABORTED: '取回過程被用戶中止',\n MEDIA_ERR_NETWORK: '當下載時發生錯誤',\n MEDIA_ERR_DECODE: '當解碼時發生錯誤',\n MEDIA_ERR_SRC_NOT_SUPPORTED: '不支持的音頻/視頻格式',\n REPLAY: '重播',\n ERROR: '網絡連接似乎出現了問題',\n PLAY_TIPS: '播放',\n PAUSE_TIPS: '暫停',\n PLAYNEXT_TIPS: '下壹集',\n DOWNLOAD_TIPS: '下載',\n ROTATE_TIPS: '旋轉',\n RELOAD_TIPS: '重新載入',\n FULLSCREEN_TIPS: \"進入全屏\",\n EXITFULLSCREEN_TIPS: '退出全屏',\n CSSFULLSCREEN_TIPS: '進入樣式全屏',\n EXITCSSFULLSCREEN_TIPS: '退出樣式全屏',\n TEXTTRACK: '字幕',\n PIP: '畫中畫',\n MINIPLAYER: '迷妳播放器',\n SCREENSHOT: '截圖',\n LIVE: '正在直播',\n OFF: '關閉',\n MINIPLAYER_DRAG: '點擊按住可拖動視頻',\n AIRPLAY_TIPS: '隔空播放',\n }\n lang['jp'] = {\n HAVE_NOTHING: 'オーディオ/ビデオが準備できているか情報がありません',\n HAVE_METADATA: 'オーディオ/ビデオのメタデータは準備できています',\n HAVE_CURRENT_DATA: '現在の再生位置に関するデータは利用可能ですが、次のフレーム/ミリ秒を再生するのに十分なデータがありません',\n HAVE_FUTURE_DATA: '現在、少なくとも次のフレームのデータが利用可能です',\n HAVE_ENOUGH_DATA: '利用可能なデータは再生を開始するのに十分です',\n NETWORK_EMPTY: 'オーディオ/ビデオが初期化されていません',\n NETWORK_IDLE: 'オーディオ/ビデオはアクティブでリソースが選択されていますが、ネットワークが使用されていません',\n NETWORK_LOADING: 'ブラウザーはデータをダウンロードしています',\n NETWORK_NO_SOURCE: 'オーディオ/ビデオ のソースが見つかりません',\n MEDIA_ERR_ABORTED: 'ユーザーによってフェッチプロセスが中止されました',\n MEDIA_ERR_NETWORK: 'ダウンロード中にエラーが発生しました',\n MEDIA_ERR_DECODE: 'デコード中にエラーが発生しました',\n MEDIA_ERR_SRC_NOT_SUPPORTED: 'オーディオ/ビデオ の形式がサポートされていません',\n REPLAY: 'リプレイ',\n ERROR: 'ネットワークの接続に問題が発生しました',\n PLAY_TIPS: 'プレイ',\n PAUSE_TIPS: '一時停止',\n PLAYNEXT_TIPS: '次をプレイ',\n DOWNLOAD_TIPS: 'ダウンロード',\n ROTATE_TIPS: '回転',\n RELOAD_TIPS: '再読み込み',\n FULLSCREEN_TIPS: \"フルスクリーン\",\n EXITFULLSCREEN_TIPS: 'フルスクリーンを終了',\n CSSFULLSCREEN_TIPS: 'シアターモード',\n EXITCSSFULLSCREEN_TIPS: 'シアターモードを終了',\n TEXTTRACK: '字幕',\n PIP: 'ミニプレーヤー',\n MINIPLAYER: 'ミニプレーヤー',\n SCREENSHOT: 'スクリーンショット',\n LIVE: '生放送',\n OFF: 'オフ',\n MINIPLAYER_DRAG: 'ボタンを押して働画をドラッグする',\n AIRPLAY_TIPS: '隔空放送',\n }\n\n Object.defineProperty(player, 'lang', {\n get: function () {\n if (player.config) {\n return lang[player.config.lang] || lang['en']\n } else {\n return lang['en']\n }\n },\n set: function (value) {\n if (typeOf(value) === 'Object') {\n Object.keys(value).forEach(key => {\n lang[key] = value[key]\n })\n }\n }\n })\n\n}\n\nexport default {\n name: 's_i18n',\n method: s_i18n\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj2) {\n return typeof obj2;\n } : function(obj2) {\n return obj2 && \"function\" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n }, _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass)\n _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct)\n return false;\n if (Reflect.construct.sham)\n return false;\n if (typeof Proxy === \"function\")\n return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null)\n break;\n }\n return object;\n}\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get2(target, property, receiver) {\n var base = _superPropBase(target, property);\n if (!base)\n return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null)\n return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== void 0) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\")\n return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nexport { _assertThisInitialized as assertThisInitialized, _classCallCheck as classCallCheck, _createClass as createClass, _createSuper as createSuper, _defineProperty as defineProperty, _get as get, _getPrototypeOf as getPrototypeOf, _inherits as inherits, _isNativeReflectConstruct as isNativeReflectConstruct, _objectSpread2 as objectSpread2, _possibleConstructorReturn as possibleConstructorReturn, _setPrototypeOf as setPrototypeOf, _superPropBase as superPropBase, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _typeof as typeof };\n","import EventEmitter from 'event-emitter'\nimport { findDom, createDom, hasClass, removeClass, _clearInterval, _setInterval, on, once, getBuffered2, setStyle } from './utils/util'\nimport Errors from './error'\n\nclass Proxy {\n constructor (options) {\n this._hasStart = false\n this.videoConfig = {\n controls: !!options.isShowControl,\n autoplay: options.autoplay,\n playsinline: options.playsinline,\n 'webkit-playsinline': options.playsinline,\n 'x5-playsinline': options.playsinline,\n 'x5-video-player-type': options['x5-video-player-type'] || options['x5VideoPlayerType'],\n 'x5-video-player-fullscreen': options['x5-video-player-fullscreen'] || options['x5VideoPlayerFullscreen'],\n 'x5-video-orientation': options['x5-video-orientation'] || options['x5VideoOrientation'],\n airplay: options['airplay'],\n 'webkit-airplay': options['airplay'],\n tabindex: 2,\n mediaType: options.mediaType || 'video'\n }\n if (options.muted) {\n this.videoConfig.muted = 'muted'\n }\n if (options.loop) {\n this.videoConfig.loop = 'loop'\n }\n let textTrackDom = ''\n this.textTrackShowDefault = true\n if (options.nativeTextTrack && Array.isArray(options.nativeTextTrack)) {\n if (options.nativeTextTrack.length > 0 && !options.nativeTextTrack.some(track => { return track.default })) {\n options.nativeTextTrack[0].default = true\n this.textTrackShowDefault = false\n }\n options.nativeTextTrack.some(track => {\n if (track.src && track.label && track.default) {\n textTrackDom += `<track src=\"${track.src}\" `\n if (track.kind) {\n textTrackDom += `kind=\"${track.kind}\" `\n }\n textTrackDom += `label=\"${track.label}\" `\n if (track.srclang) {\n textTrackDom += `srclang=\"${track.srclang}\" `\n }\n textTrackDom += `${track.default ? 'default' : ''}>`\n return true\n }\n })\n this.videoConfig.crossorigin = 'anonymous'\n }\n if (options.textTrackStyle) {\n let style = document.createElement('style')\n this.textTrackStyle = style\n document.head.appendChild(style)\n let styleStr = ''\n for (let index in options.textTrackStyle) {\n styleStr += `${index}: ${options.textTrackStyle[index]};`\n }\n let wrap = options.id ? `#${options.id}` : (options.el.id ? `#${options.el.id}` : `.${options.el.className}`)\n if (style.sheet.insertRule) {\n style.sheet.insertRule(`${wrap} video::cue { ${styleStr} }`, 0)\n } else if (style.sheet.addRule) {\n style.sheet.addRule(`${wrap} video::cue`, styleStr)\n }\n }\n let el = options.el ? options.el : findDom(document, `#${options.id}`)\n const XgVideoProxy = this.constructor.XgVideoProxy\n if(XgVideoProxy && this.videoConfig.mediaType === XgVideoProxy.mediaType) {\n this.video = new XgVideoProxy(el, options)\n } else {\n this.video = createDom(this.videoConfig.mediaType, textTrackDom, this.videoConfig, '')\n }\n if (options.videoStyle) {\n Object.keys(options.videoStyle).forEach(key => {\n setStyle(this.video, key, options.videoStyle[key])\n })\n }\n if (!this.textTrackShowDefault && textTrackDom) {\n let trackDoms = this.video.getElementsByTagName('Track')\n trackDoms[0].track.mode = 'hidden'\n }\n if (options.autoplay) {\n this.video.autoplay = true\n if (options.autoplayMuted) {\n this.video.muted = true\n }\n }\n\n this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked', 'progress', \n 'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'ratechange', 'loadedmetadata', 'loadeddata', 'loadstart'\n ].map((item) => {\n return {\n [item]: `on${item.charAt(0).toUpperCase()}${item.slice(1)}`\n }\n })\n EventEmitter(this)\n\n this._interval = {}\n let lastBuffer = '0,0'\n let self = this\n\n const defaultVideoEventHandler = name => {\n // fix when video destroy called and video reload\n if (!this) {\n return\n }\n if (name === 'play') {\n this.hasStart = true\n } else if (name === 'canplay') {\n removeClass(this.root, 'xgplayer-is-enter')\n } else if (name === 'waiting') {\n this.inWaitingStart = new Date().getTime()\n } else if (name === 'playing') {\n removeClass(this.root, 'xgplayer-is-enter')\n if (this.inWaitingStart) {\n this.inWaitingStart = undefined\n }\n }\n if (name === 'error') {\n // process the error\n this._onError(name)\n } else {\n this.emit(name, this)\n }\n\n if (this.hasOwnProperty('_interval')) {\n if (['ended', 'error', 'timeupdate'].indexOf(name) < 0) {\n _clearInterval(this, 'bufferedChange')\n _setInterval(this, 'bufferedChange', function () {\n if (this.video && this.video.buffered) {\n let curBuffer = []\n for (let i = 0, len = this.video.buffered.length; i < len; i++) {\n curBuffer.push([this.video.buffered.start(i), this.video.buffered.end(i)])\n }\n if (curBuffer.toString() !== lastBuffer) {\n lastBuffer = curBuffer.toString()\n this.emit('bufferedChange', curBuffer)\n }\n }\n }, 200)\n } else {\n if (name !== 'timeupdate') {\n _clearInterval(this, 'bufferedChange')\n }\n }\n }\n }\n\n const videoEventHandler = name => {\n if(options.videoEventMiddleware && typeof options.videoEventMiddleware[name] === 'function') {\n options.videoEventMiddleware[name].call(this, this, name, defaultVideoEventHandler)\n } else {\n defaultVideoEventHandler.call(this, name);\n }\n }\n\n this.ev.forEach(item => {\n self.evItem = Object.keys(item)[0]\n let name = Object.keys(item)[0]\n self.video.addEventListener(Object.keys(item)[0], videoEventHandler.bind(self, name))\n })\n }\n /**\n * 错误监听处理逻辑抽离\n */\n _onError (name) {\n if (this.video && this.video.error) {\n this.emit(name, new Errors('other', this.currentTime, this.duration, this.networkState, this.readyState, this.currentSrc, this.src,\n this.ended, {\n line: 162,\n msg: this.error,\n handle: 'Constructor'\n }, this.video.error.code, this.video.error))\n }\n }\n\n get hasStart () {\n return this._hasStart\n }\n set hasStart (bool) {\n if (typeof bool === 'boolean' && bool === true && !this._hasStart) {\n this._hasStart = true\n this.emit('hasstart')\n }\n }\n destroy () {\n if (this.textTrackStyle) {\n this.textTrackStyle.parentNode.removeChild(this.textTrackStyle)\n }\n }\n play () {\n return this.video.play()\n }\n pause () {\n this.video.pause()\n }\n canPlayType (type) {\n return this.video.canPlayType(type)\n }\n getBufferedRange (buffered) {\n let range = [0, 0]\n let video = this.video\n if(!buffered) buffered = video.buffered\n let currentTime = video.currentTime\n if (buffered) {\n for (let i = 0, len = buffered.length; i < len; i++) {\n range[0] = buffered.start(i)\n range[1] = buffered.end(i)\n if (range[0] <= currentTime && currentTime <= range[1]) {\n break\n }\n }\n }\n if (range[0] - currentTime <= 0 && currentTime - range[1] <= 0) {\n return range\n } else {\n return [0, 0]\n }\n }\n proxyOn (event, fn) {\n on(this, event, fn, 'destroy')\n }\n proxyOnce (event, fn) {\n once(this, event, fn, 'destroy')\n }\n set autoplay (isTrue) {\n if(this.video) {\n this.video.autoplay = isTrue\n }\n }\n get autoplay () {\n if(this.video) {\n return this.video.autoplay\n } else {\n return false\n }\n }\n get buffered () {\n if(this.video) {\n return this.video.buffered\n } else {\n return undefined\n }\n }\n get buffered2 () {\n return getBuffered2(this.video.buffered)\n }\n get crossOrigin () {\n if(this.video) {\n return this.video.crossOrigin\n } else {\n return false\n }\n }\n set crossOrigin (isTrue) {\n if(this.video) {\n this.video.crossOrigin = isTrue\n }\n }\n get currentSrc () {\n if(this.video) {\n return this.video.currentSrc\n } else {\n return undefined\n }\n }\n get currentTime () {\n if(this.video) {\n return this.video.currentTime || 0\n } else {\n return 0\n }\n }\n set currentTime (time) {\n if (typeof isFinite === 'function' && !isFinite(time)) return\n if (hasClass(this.root, 'xgplayer-ended')) {\n this.once('playing', () => { this.video.currentTime = time })\n this.replay()\n } else {\n this.video.currentTime = time\n }\n this.emit('currentTimeChange', time)\n }\n get defaultMuted () {\n if(this.video) {\n return this.video.defaultMuted\n } else {\n return false\n }\n }\n set defaultMuted (isTrue) {\n if(this.video) {\n this.video.defaultMuted = isTrue\n }\n }\n get duration () {\n if(this.config.duration) {\n if(this.video) return Math.min(this.config.duration, this.video.duration)\n else return this.config.duration\n }\n if (!this.video) return null\n return this.video.duration\n }\n get ended () {\n if(this.video) {\n return this.video.ended || false\n } else {\n return true\n }\n }\n get error () {\n let err = this.video.error\n if (!err) {\n return null\n }\n let status = [{\n en: 'MEDIA_ERR_ABORTED',\n cn: '取回过程被用户中止'\n }, {\n en: 'MEDIA_ERR_NETWORK',\n cn: '当下载时发生错误'\n }, {\n en: 'MEDIA_ERR_DECODE',\n cn: '当解码时发生错误'\n }, {\n en: 'MEDIA_ERR_SRC_NOT_SUPPORTED',\n cn: '不支持音频/视频'\n }]\n return this.lang ? this.lang[status[err.code - 1].en] : status[err.code - 1].en\n }\n get loop () {\n if(this.video) {\n return this.video.loop\n } else {\n return false\n }\n }\n set loop (isTrue) {\n if(this.video) {\n this.video.loop = isTrue\n }\n }\n get muted () {\n if(this.video) {\n return this.video.muted\n } else {\n return false\n }\n }\n set muted (isTrue) {\n if(this.video) {\n this.video.muted = isTrue\n }\n }\n get networkState () {\n let status = [{\n en: 'NETWORK_EMPTY',\n cn: '音频/视频尚未初始化'\n }, {\n en: 'NETWORK_IDLE',\n cn: '音频/视频是活动的且已选取资源,但并未使用网络'\n }, {\n en: 'NETWORK_LOADING',\n cn: '浏览器正在下载数据'\n }, {\n en: 'NETWORK_NO_SOURCE',\n cn: '未找到音频/视频来源'\n }]\n return this.lang ? this.lang[status[this.video.networkState].en] : status[this.video.networkState].en\n }\n get paused () {\n // if(this.video) {\n // return this.video.paused\n // } else {\n // return false\n // }\n return hasClass(this.root, 'xgplayer-pause')\n }\n get playbackRate () {\n if(this.video) {\n return this.video.playbackRate\n } else {\n return 1\n }\n }\n set playbackRate (rate) {\n if(this.video) {\n this.video.playbackRate = rate\n }\n }\n get played () {\n if(this.video) {\n return this.video.played\n } else {\n return undefined\n }\n }\n get preload () {\n if(this.video) {\n return this.video.preload\n } else {\n return false\n }\n }\n set preload (isTrue) {\n if(this.video) {\n this.video.preload = isTrue\n }\n }\n get readyState () {\n let status = [{\n en: 'HAVE_NOTHING',\n cn: '没有关于音频/视频是否就绪的信息'\n }, {\n en: 'HAVE_METADATA',\n cn: '关于音频/视频就绪的元数据'\n }, {\n en: 'HAVE_CURRENT_DATA',\n cn: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒'\n }, {\n en: 'HAVE_FUTURE_DATA',\n cn: '当前及至少下一帧的数据是可用的'\n }, {\n en: 'HAVE_ENOUGH_DATA',\n cn: '可用数据足以开始播放'\n }]\n return this.lang ? this.lang[status[this.video.readyState].en] : status[this.video.readyState]\n }\n get seekable () {\n if(this.video) {\n return this.video.seekable\n } else {\n return false\n }\n }\n get seeking () {\n if(this.video) {\n return this.video.seeking\n } else {\n return false\n }\n }\n get src () {\n if(this.video) {\n return this.video.src\n } else {\n return undefined\n }\n }\n set src (url) {\n if (!hasClass(this.root, 'xgplayer-ended')) {\n this.emit('urlchange', this.video.src)\n }\n removeClass(this.root, 'xgplayer-ended xgplayer-is-replay xgplayer-is-error')\n this.video.pause()\n this.emit('pause')\n this.video.src = url\n this.emit('srcChange')\n }\n set poster (posterUrl) {\n let poster = findDom(this.root, '.xgplayer-poster')\n if (poster) {\n poster.style.backgroundImage = `url(${posterUrl})`\n }\n }\n get volume () {\n if(this.video) {\n return this.video.volume\n } else {\n return 1\n }\n }\n set volume (vol) {\n if(this.video) {\n this.video.volume = vol\n }\n }\n get fullscreen () {\n return hasClass(this.root, 'xgplayer-is-fullscreen') || hasClass(this.root, 'xgplayer-fullscreen-active')\n }\n get bullet () {\n return findDom(this.root, 'xg-danmu') ? hasClass(findDom(this.root, 'xg-danmu'), 'xgplayer-has-danmu') : false\n }\n get textTrack () {\n return hasClass(this.root, 'xgplayer-is-textTrack')\n }\n get pip () {\n return hasClass(this.root, 'xgplayer-pip-active')\n }\n get isMiniPlayer () {\n return hasClass(this.root, 'xgplayer-miniplayer-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","'use strict';\n\nvar value = require('es5-ext/object/valid-object')\n\n , hasOwnProperty = Object.prototype.hasOwnProperty;\n\nmodule.exports = function (emitter/*, type*/) {\n\tvar type = arguments[1], data;\n\n\tvalue(emitter);\n\n\tif (type !== undefined) {\n\t\tdata = hasOwnProperty.call(emitter, '__ee__') && emitter.__ee__;\n\t\tif (!data) return;\n\t\tif (data[type]) delete data[type];\n\t\treturn;\n\t}\n\tif (hasOwnProperty.call(emitter, '__ee__')) delete emitter.__ee__;\n};\n","\"use strict\";\n\nvar isObject = require(\"./is-object\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n\treturn value;\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../node_modules/postcss-loader/lib/index.js!../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default{background:#000;width:100%;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.xgplayer-skin-default *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;white-space:normal;word-wrap:normal}.xgplayer-skin-default.xgplayer-rotate-fullscreen{position:absolute;top:0;left:100%;bottom:0;right:0;height:100vw!important;width:100vh!important;-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.xgplayer-skin-default.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer-skin-default.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer-skin-default video{width:100%;height:100%;outline:none}.xgplayer-skin-default .xgplayer-none{display:none}@-webkit-keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}.xgplayer-skin-default .xgplayer-controls{display:-webkit-flex;display:-moz-box;display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.37),rgba(0,0,0,.75),rgba(0,0,0,.75));z-index:10}.xgplayer-skin-default.xgplayer-inactive .xgplayer-controls,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-progress,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-time,.xgplayer-skin-default.xgplayer-no-controls .xgplayer-controls,.xgplayer-skin-default.xgplayer-nostart .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-live{display:block}.xgplayer-skin-default .xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;-webkit-order:1;-moz-box-ordinal-group:2;order:1}.xgplayer-skin-default .xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-skin-default .xgplayer-icon svg{position:absolute}.xgplayer-skin-default .xgplayer-tips{background:rgba(0,0,0,.54);border-radius:1px;display:none;position:absolute;font-family:PingFangSC-Regular;font-size:11px;color:#fff;padding:2px 4px;text-align:center;top:-30px;left:50%;margin-left:-16px;width:auto;white-space:nowrap}.xgplayer-skin-default.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-skin-default .xgplayer-screen-container{display:block;width:100%}\", \"\"]);\n\n// exports\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","import { hasClass } from '../utils/util'\n\nlet mobile = function () {\n let player = this\n let root = player.root\n let clk = 0; let _click_\n let clickedTime = {\n first: '',\n second: ''\n }\n\n player.onElementTouchend = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (hasClass(root, 'xgplayer-inactive')) {\n player.emit('focus')\n } else {\n player.emit('blur')\n }\n if (!player.config.closeVideoTouch && !player.isTouchMove) {\n function onTouch() {\n _click_ = setTimeout(function () {\n if (hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n clk = 0\n }, 200)\n }\n if (!player.config.closeVideoClick) {\n clk++\n if (_click_) {\n clearTimeout(_click_)\n }\n if (clk === 1) {\n if(player.config.enableVideoDbltouch) {\n clickedTime.first = new Date()\n } else {\n onTouch()\n }\n } else if (clk === 2) {\n if(player.config.enableVideoDbltouch) {\n clickedTime.second = new Date()\n if (Math.abs(clickedTime.first - clickedTime.second) < 400) {\n // 双击\n onTouch()\n } else {\n clickedTime.first = new Date()\n clk = 1\n }\n } else {\n clk = 0\n }\n } else {\n clk = 0\n }\n }\n }\n }\n\n function onReady (e) {\n if (!player || !player.video) return\n player.video.addEventListener('touchend', function (e) {\n player.onElementTouchend(e, player.video)\n })\n player.video.addEventListener('touchstart', () => {\n player.isTouchMove = false\n })\n player.video.addEventListener('touchmove', () => {\n player.isTouchMove = true\n })\n if (player.config.autoplay) {\n player.start()\n }\n }\n player.once('ready', onReady)\n\n function onDestroy () {\n player.off('ready', onReady)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'mobile',\n method: mobile\n}","import { hasClass } from '../utils/util'\n\nlet pc = function () {\n let player = this\n if(!player.controls || !player.video) return\n let controls = player.controls; let root = player.root\n let clk = 0; let _click_\n\n player.onElementClick = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (!player.config.closeVideoClick) {\n clk++\n if (_click_) {\n clearTimeout(_click_)\n }\n if (clk === 1) {\n _click_ = setTimeout(function () {\n if (hasClass(player.root, 'xgplayer-nostart')) {\n return false\n } else if (!player.ended) {\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n clk = 0\n }, 200)\n } else {\n clk = 0\n }\n }\n }\n player.video.addEventListener('click', function (e) { player.onElementClick(e, player.video) }, false)\n\n player.onElementDblclick = function (e, element) {\n if(!this.config.closeVideoPreventDefault) {\n e.preventDefault()\n }\n if(!this.config.closeVideoStopPropagation) {\n e.stopPropagation()\n }\n let player = this\n if (!player.config.closeVideoDblclick) {\n let fullscreen = controls.querySelector('.xgplayer-fullscreen')\n if (fullscreen) {\n let clk\n if (document.createEvent) {\n clk = document.createEvent('Event')\n clk.initEvent('click', true, true)\n } else {\n clk = new Event('click')\n }\n fullscreen.dispatchEvent(clk)\n }\n }\n }\n player.video.addEventListener('dblclick', function (e) { player.onElementDblclick(e, player.video) }, false)\n\n function onMouseEnter () {\n clearTimeout(player.leavePlayerTimer)\n player.emit('focus', player)\n }\n root.addEventListener('mouseenter', onMouseEnter)\n\n function onMouseLeave () {\n if(!player.config.closePlayerBlur) {\n player.leavePlayerTimer = setTimeout(function () {\n player.emit('blur', player)\n }, player.config.leavePlayerTime || 0)\n }\n }\n root.addEventListener('mouseleave', onMouseLeave)\n\n function onControlMouseEnter (e) {\n if (player.userTimer) {\n clearTimeout(player.userTimer)\n }\n }\n controls.addEventListener('mouseenter', onControlMouseEnter)\n\n function onControlMouseLeave (e) {\n if(!player.config.closeControlsBlur) {\n player.emit('focus', player)\n }\n }\n controls.addEventListener('mouseleave', onControlMouseLeave)\n\n function onControlClick (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n controls.addEventListener('click', onControlClick)\n\n function onReady (e) {\n if (player.config.autoplay) {\n player.start()\n }\n }\n player.once('ready', onReady)\n\n function onDestroy () {\n root.removeEventListener('mouseenter', onMouseEnter)\n root.removeEventListener('mouseleave', onMouseLeave)\n player.off('ready', onReady)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'pc',\n method: pc\n}","import { addClass, hasClass, removeClass } from '../utils/util'\n\nlet start = function () {\n let player = this\n let root = player.root\n\n function onCanPlay () {\n player.off('canplay', onCanPlay)\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n\n function onStartBtnClick () {\n if (hasClass(root, 'xgplayer-nostart')) {\n removeClass(root, 'xgplayer-nostart') // for ie quick switch\n addClass(root, 'xgplayer-is-enter')\n\n if(typeof root.contains === 'function') {\n if((player.video && player.video.nodeType === 1 && !root.contains(player.video)) || (player.video && player.video.nodeType !== 1 && player.video.mediaSource === undefined)) {\n player.once('canplay', onCanPlay)\n player.start()\n } else {\n onCanPlay()\n }\n } else {\n if((player.video && player.video.nodeType === 1 && !root.querySelector(this.videoConfig.mediaType)) || (player.video && player.video.nodeType !== 1 && player.video.mediaSource === undefined)) {\n player.once('canplay', onCanPlay)\n player.start()\n } else {\n onCanPlay()\n }\n }\n } else {\n if (player.paused) {\n removeClass(root, 'xgplayer-nostart xgplayer-isloading')\n setTimeout(() => {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }, 10)\n }\n }\n }\n player.on('startBtnClick', onStartBtnClick)\n\n function onDestroy () {\n player.off('startBtnClick', onStartBtnClick)\n player.off('canplay', onCanPlay)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'start',\n method: start\n}","import { createDom, addClass, removeClass, isWeiXin, isUc } from '../../utils/util'\nimport StartPlayIcon from '../assets/startPlay.svg'\nimport StartPauseIcon from '../assets/startPause.svg'\nimport '../style/controls/start.scss'\n\nlet s_start = function () {\n let player = this\n let root = player.root\n let btn = createDom('xg-start', `<div class=\"xgplayer-icon-play\">${StartPlayIcon}</div>\n <div class=\"xgplayer-icon-pause\">${StartPauseIcon}</div>`, {}, 'xgplayer-start')\n function onPlayerReady(player) {\n addClass(player.root, 'xgplayer-skin-default')\n if (player.config) {\n player.config.autoplay && !isWeiXin() && !isUc() && addClass(player.root, 'xgplayer-is-enter')\n if (player.config.lang && player.config.lang === 'en') {\n addClass(player.root, 'xgplayer-lang-is-en')\n } else if (player.config.lang === 'jp') {\n addClass(player.root, 'xgplayer-lang-is-jp')\n }\n if(!player.config.enableContextmenu) {\n player.video.addEventListener('contextmenu', e => {\n e.preventDefault()\n e.stopPropagation()\n })\n }\n }\n }\n\n if(player.config && player.config.hideStartBtn) {\n addClass(root, 'xgplayer-start-hide')\n }\n\n if (player.isReady) {\n root.appendChild(btn)\n onPlayerReady(player)\n } else {\n player.once('ready', () => {\n root.appendChild(btn)\n onPlayerReady(player)\n });\n }\n\n player.once('autoplay was prevented', () => {\n removeClass(player.root, 'xgplayer-is-enter')\n addClass(player.root, 'xgplayer-nostart')\n })\n\n player.once('canplay', () => {\n removeClass(player.root, 'xgplayer-is-enter')\n })\n\n btn.onclick = e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('startBtnClick')\n }\n}\n\nexport default {\n name: 's_start',\n method: s_start\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"70\\\" height=\\\"70\\\" viewBox=\\\"0 0 70 70\\\">\\n <path transform=\\\"translate(15,15) scale(0.04,0.04)\\\" d=\\\"M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z\\\"></path>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"70\\\" height=\\\"70\\\" viewBox=\\\"0 0 70 70\\\">\\n <path transform=\\\"translate(15,15) scale(0.04 0.04)\\\" d=\\\"M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z\\\"></path>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./start.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./start.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./start.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-start{border-radius:50%;display:inline-block;width:70px;height:70px;background:rgba(0,0,0,.38);overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:115;margin:-35px auto auto -35px;cursor:pointer}.xgplayer-skin-default .xgplayer-start div{position:absolute}.xgplayer-skin-default .xgplayer-start div svg{fill:hsla(0,0%,100%,.7)}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-start:hover{opacity:.85}.xgplayer-skin-default.xgplayer-pause.xgplayer-start-hide .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-start-hide .xgplayer-start{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start{display:inline-block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start,.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-pause{display:none}\", \"\"]);\n\n// exports\n","import { hasClass, addClass, removeClass, PresentationMode, checkWebkitSetPresentationMode } from '../utils/util'\n\nlet fullscreen = function () {\n let player = this\n let root = player.root\n\n function onFullscreenBtnClick () {\n if (player.config.rotateFullscreen) {\n if (hasClass(root, 'xgplayer-rotate-fullscreen')) {\n player.exitRotateFullscreen()\n } else {\n player.getRotateFullscreen()\n }\n } else {\n if (hasClass(root, 'xgplayer-is-fullscreen')) {\n player.exitFullscreen(root)\n } else {\n player.getFullscreen(root)\n }\n }\n }\n player.on('fullscreenBtnClick', onFullscreenBtnClick)\n\n function onFullscreenChange () {\n let fullscreenEl = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement\n if (fullscreenEl && fullscreenEl === root) {\n addClass(root, 'xgplayer-is-fullscreen')\n player.emit('requestFullscreen')\n } else if (hasClass(root, 'xgplayer-is-fullscreen')) {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n }\n if (player.danmu && typeof player.danmu.resize === 'function') {\n player.danmu.resize()\n }\n };\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.addEventListener(item, onFullscreenChange)\n })\n\n player.video.addEventListener('webkitbeginfullscreen', function () {\n addClass(root, 'xgplayer-is-fullscreen')\n player.emit('requestFullscreen')\n })\n\n player.video.addEventListener('webkitendfullscreen', function () {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n })\n\n function onWebkitpresentationmodechanged (e) {\n const mode = player.video.webkitPresentationMode\n // 非全屏模式 退出全屏\n if (mode !== PresentationMode.FULLSCREEN) {\n removeClass(root, 'xgplayer-is-fullscreen')\n player.emit('exitFullscreen')\n }\n }\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.addEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n function onDestroy () {\n player.off('fullscreenBtnClick', onFullscreenBtnClick);\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(item => {\n document.removeEventListener(item, onFullscreenChange)\n })\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.removeEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getFullscreen = function (el) {\n let player = this\n if (el.requestFullscreen) {\n let fullscreenPromise = el.requestFullscreen()\n if (fullscreenPromise) {\n fullscreenPromise.catch(function () {\n player.emit('fullscreen error')\n })\n }\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen()\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen(window.Element.ALLOW_KEYBOARD_INPUT)\n } else if (player.video.webkitSupportsFullscreen) {\n player.video.webkitEnterFullscreen()\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen()\n } else {\n addClass(el, 'xgplayer-is-cssfullscreen')\n }\n }\n\n player.exitFullscreen = function (el) {\n if (document.exitFullscreen) {\n document.exitFullscreen()\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen()\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen()\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen()\n }\n removeClass(el, 'xgplayer-is-cssfullscreen')\n }\n\n player.getRotateFullscreen = function () {\n let player = this\n document.documentElement.style.width = '100%'\n document.documentElement.style.height = '100%'\n if (player.config.fluid) {\n player.root.style['padding-top'] = ''\n player.root.style['max-width'] = 'unset'\n }\n if (player.root && !hasClass(player.root, 'xgplayer-rotate-fullscreen')) {\n addClass(player.root, 'xgplayer-rotate-fullscreen')\n }\n player.emit('getRotateFullscreen')\n }\n\n player.exitRotateFullscreen = function () {\n let player = this\n document.documentElement.style.width = 'unset'\n document.documentElement.style.height = 'unset'\n if (player.config.fluid) {\n player.root.style['width'] = '100%'\n player.root.style['height'] = '0'\n player.root.style['padding-top'] = `${player.config.height * 100 / player.config.width}%`\n player.root.style['max-width'] = '100%'\n }\n if (player.root && hasClass(player.root, 'xgplayer-rotate-fullscreen')) {\n removeClass(player.root, 'xgplayer-rotate-fullscreen')\n }\n player.emit('exitRotateFullscreen')\n }\n}\n\nexport default {\n name: 'fullscreen',\n method: fullscreen\n}\n","import { hasClass } from '../utils/util'\n\nlet play = function () {\n let player = this\n\n function onPlayBtnClick () {\n if (!player.config.allowPlayAfterEnded && player.ended) {\n return\n }\n if(hasClass(player.root, 'xgplayer-nostart')) {\n player.start()\n }\n if (player.paused) {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n } else {\n player.pause()\n }\n }\n player.on('playBtnClick', onPlayBtnClick)\n\n function onDestroy () {\n player.off('playBtnClick', onPlayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'play',\n method: play\n}","import { addClass, removeClass } from '../utils/util'\n\nlet replay = function () {\n let player = this\n let root = player.root\n\n function onReplayBtnClick () {\n removeClass(root, 'xgplayer-is-replay')\n player.replay()\n }\n player.on('replayBtnClick', onReplayBtnClick)\n\n function onEnded () {\n if (!player.config.loop) {\n addClass(root, 'xgplayer-is-replay')\n }\n }\n player.on('ended', onEnded)\n\n function onDestroy () {\n player.off('replayBtnClick', onReplayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'replay',\n method: replay\n}","import { createDom, createImgBtn } from '../../utils/util'\nimport PlayIcon from '../assets/play.svg'\nimport PauseIcon from '../assets/pause.svg'\nimport '../style/controls/play.scss'\n\nlet s_play = function () {\n let player = this\n let playBtn = player.config.playBtn ? player.config.playBtn : {}\n let btn\n if (playBtn.type === 'img') {\n btn = createImgBtn('play', playBtn.url.play, playBtn.width, playBtn.height)\n } else {\n btn = createDom('xg-play', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-play\">${PlayIcon}</div>\n <div class=\"xgplayer-icon-pause\">${PauseIcon}</div>\n </xg-icon>`, {}, 'xgplayer-play')\n }\n\n let tipsText = {}\n tipsText.play = player.lang.PLAY_TIPS\n tipsText.pause = player.lang.PAUSE_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-play\">${tipsText.play}</span>\n <span class=\"xgplayer-tip-pause\">${tipsText.pause}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(btn)\n }\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('playBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_play',\n method: s_play\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\">\\n <path transform=\\\"translate(2,2) scale(0.0320625 0.0320625)\\\" d=\\\"M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z\\\"></path>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\">\\n <path transform=\\\"translate(2,2) scale(0.0320625 0.0320625)\\\" d=\\\"M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z\\\"></path>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./play.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-play,.xgplayer-skin-default .xgplayer-play-img{width:40px;position:relative;-webkit-order:0;-moz-box-ordinal-group:1;order:0;display:block;cursor:pointer;margin-left:3px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-play .xgplayer-icon{margin-top:3px;width:32px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-play .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}.xgplayer-skin-default .xgplayer-play-img:hover,.xgplayer-skin-default .xgplayer-play:hover{opacity:.85}.xgplayer-skin-default .xgplayer-play-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-play:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport '../style/controls/poster.scss'\n\nlet s_poster = function () {\n let player = this\n let root = player.root\n if (!player.config.poster) {\n return\n }\n let poster = createDom('xg-poster', '', {}, 'xgplayer-poster')\n poster.style.backgroundImage = `url(${player.config.poster})`\n root.appendChild(poster)\n}\n\nexport default {\n name: 's_poster',\n method: s_poster\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-poster{display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:50%}.xgplayer-skin-default.xgplayer-nostart .xgplayer-poster{display:block}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport '../style/controls/placeholder.scss'\n\nlet s_flex = function () {\n let player = this\n let playceholder = createDom('xg-placeholder', '', {}, 'xgplayer-placeholder')\n player.controls.appendChild(playceholder)\n}\n\nexport default {\n name: 's_flex',\n method: s_flex\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./placeholder.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./placeholder.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./placeholder.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-placeholder{-webkit-flex:1;-moz-box-flex:1;flex:1;-webkit-order:3;-moz-box-ordinal-group:4;order:3;display:block}\", \"\"]);\n\n// exports\n","import { createDom, createImgBtn } from '../../utils/util'\nimport RequestFullIcon from '../assets/requestFull.svg'\nimport ExitFullIcon from '../assets/exitFull.svg'\nimport '../style/controls/fullscreen.scss'\n\nlet s_fullscreen = function () {\n let player = this\n let fullscreenBtn = player.config.fullscreenBtn ? player.config.fullscreenBtn : {}\n let btn\n if (fullscreenBtn.type === 'img') {\n btn = createImgBtn('fullscreen', fullscreenBtn.url.request, fullscreenBtn.width, fullscreenBtn.height)\n } else {\n btn = createDom('xg-fullscreen', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-requestfull\">${RequestFullIcon}</div>\n <div class=\"xgplayer-icon-exitfull\">${ExitFullIcon}</div>\n </xg-icon>`, {}, 'xgplayer-fullscreen')\n }\n\n let tipsText = {}\n tipsText.requestfull = player.lang.FULLSCREEN_TIPS\n tipsText.exitfull = player.lang.EXITFULLSCREEN_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-requestfull\">${tipsText.requestfull}</span>\n <span class=\"xgplayer-tip-exitfull\">${tipsText.exitfull}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(btn)\n }\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('fullscreenBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_fullscreen',\n method: s_fullscreen\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\">\\n <path transform=\\\"scale(0.0320625 0.0320625)\\\" d=\\\"M598 214h212v212h-84v-128h-128v-84zM726 726v-128h84v212h-212v-84h128zM214 426v-212h212v84h-128v128h-84zM298 598v128h128v84h-212v-212h84z\\\"></path>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\">\\n <path transform=\\\"scale(0.0320625 0.0320625)\\\" d=\\\"M682 342h128v84h-212v-212h84v128zM598 810v-212h212v84h-128v128h-84zM342 342v-128h84v212h-212v-84h128zM214 682v-84h212v212h-84v-128h-128z\\\"></path>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./fullscreen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-fullscreen,.xgplayer-skin-default .xgplayer-fullscreen-img{position:relative;-webkit-order:13;-moz-box-ordinal-group:14;order:13;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img:hover,.xgplayer-skin-default .xgplayer-fullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-fullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport Loading from '../assets/loading.svg'\nimport '../style/controls/loading.scss'\n\nlet s_loading = function () {\n let player = this\n let root = player.root\n let container = createDom('xg-loading', `${Loading}`, {}, 'xgplayer-loading')\n player.once('ready', () => {\n root.appendChild(container)\n })\n}\n\nexport default {\n name: 's_loading',\n method: s_loading\n}","export default \"<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\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./loading.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-loading{display:none;width:100px;height:100px;overflow:hidden;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);position:absolute;left:50%;top:50%;margin:-50px auto auto -50px}.xgplayer-skin-default .xgplayer-loading svg{border-radius:50%;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-animation:loadingRotate 1s linear infinite;animation:loadingRotate 1s linear infinite}.xgplayer-skin-default .xgplayer-loading svg path{stroke:#ddd;stroke-dasharray:236;-webkit-animation:loadingDashOffset 2s linear infinite;animation:loadingDashOffset 2s linear infinite;animation-direction:alternate-reverse;fill:none;stroke-width:12px}.xgplayer-skin-default.xgplayer-nostart .xgplayer-loading{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-loading{display:none!important}.xgplayer-skin-default.xgplayer-isloading .xgplayer-loading{display:block}\", \"\"]);\n\n// exports\n","import { createDom, addClass, removeClass, hasClass, toggleClass, typeOf, event, format, findDom } from '../../utils/util'\r\nimport sniffer from '../../utils/sniffer'\r\nimport '../style/controls/progress.scss'\r\n\r\nconst isRotateFullscreen = (player) => {\r\n return hasClass(player.root, 'xgplayer-rotate-fullscreen')\r\n}\r\n\r\nlet s_progress = function () {\r\n let player = this\r\n let container = createDom('xg-progress', `<xg-outer class=\"xgplayer-progress-outer\">\r\n <xg-cache class=\"xgplayer-progress-cache\"></xg-cache>\r\n <xg-played class=\"xgplayer-progress-played\">\r\n <xg-progress-btn class=\"xgplayer-progress-btn\"></xg-progress-btn>\r\n <xg-point class=\"xgplayer-progress-point xgplayer-tips\"></xg-point>\r\n <xg-thumbnail class=\"xgplayer-progress-thumbnail xgplayer-tips\"></xg-thumbnail>\r\n </xg-played>\r\n </xg-outer>`, {tabindex: 1}, 'xgplayer-progress')\r\n let containerWidth\r\n player.controls.appendChild(container)\r\n let progress = container.querySelector('.xgplayer-progress-played')\r\n let outer = container.querySelector('.xgplayer-progress-outer')\r\n let cache = container.querySelector('.xgplayer-progress-cache')\r\n let point = container.querySelector('.xgplayer-progress-point')\r\n let thumbnail = container.querySelector('.xgplayer-progress-thumbnail')\r\n player.dotArr = {}\r\n function dotEvent (dotItem, text) {\r\n dotItem.addEventListener('mouseenter', function (e) {\r\n if (text) {\r\n addClass(dotItem, 'xgplayer-progress-dot-show')\r\n addClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n dotItem.addEventListener('mouseleave', function (e) {\r\n if (text) {\r\n removeClass(dotItem, 'xgplayer-progress-dot-show')\r\n removeClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n dotItem.addEventListener('touchend', function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n if (text) {\r\n if (!hasClass(dotItem, 'xgplayer-progress-dot-show')) {\r\n Object.keys(player.dotArr).forEach(function (key) {\r\n if (player.dotArr[key]) {\r\n removeClass(player.dotArr[key], 'xgplayer-progress-dot-show')\r\n }\r\n })\r\n }\r\n toggleClass(dotItem, 'xgplayer-progress-dot-show')\r\n toggleClass(container, 'xgplayer-progress-dot-active')\r\n }\r\n })\r\n }\r\n function onCanplay () {\r\n if (player.config.progressDot && typeOf(player.config.progressDot) === 'Array') {\r\n player.config.progressDot.forEach(item => {\r\n if (item.time >= 0 && item.time <= player.duration) {\r\n let dot = createDom('xg-progress-dot', item.text ? `<span class=\"xgplayer-progress-tip\">${item.text}</span>` : '', {}, 'xgplayer-progress-dot')\r\n dot.style.left = (item.time / player.duration) * 100 + '%'\r\n if (item.duration >= 0) {\r\n dot.style.width = (Math.min(item.duration, player.duration - item.time) / player.duration) * 100 + '%'\r\n }\r\n if(item.style) {\r\n for(let k in item.style) {\r\n dot.style[k] = item.style[k]\r\n }\r\n }\r\n outer.appendChild(dot)\r\n player.dotArr[item.time] = dot\r\n dotEvent(dot, item.text)\r\n }\r\n })\r\n }\r\n }\r\n player.once('canplay', onCanplay)\r\n player.addProgressDot = function (time, text, duration, style) {\r\n if (player.dotArr[time]) {\r\n return\r\n }\r\n if (time >= 0 && time <= player.duration) {\r\n let dot = createDom('xg-progress-dot', text ? `<span class=\"xgplayer-progress-tip\">${text}</span>` : '', {}, 'xgplayer-progress-dot')\r\n dot.style.left = (time / player.duration) * 100 + '%'\r\n if (duration >= 0) {\r\n dot.style.width = (Math.min(duration, player.duration - time) / player.duration) * 100 + '%'\r\n }\r\n if(style) {\r\n for(let k in style) {\r\n dot.style[k] = style[k]\r\n }\r\n }\r\n outer.appendChild(dot)\r\n player.dotArr[time] = dot\r\n dotEvent(dot, text)\r\n }\r\n }\r\n player.removeProgressDot = function (time) {\r\n if (time >= 0 && time <= player.duration && player.dotArr[time]) {\r\n let dot = player.dotArr[time]\r\n dot.parentNode.removeChild(dot)\r\n dot = null\r\n player.dotArr[time] = null\r\n }\r\n }\r\n player.removeAllProgressDot = function () {\r\n Object.keys(player.dotArr).forEach(function (key) {\r\n if (player.dotArr[key]) {\r\n let dot = player.dotArr[key]\r\n dot.parentNode.removeChild(dot)\r\n dot = null\r\n player.dotArr[key] = null\r\n }\r\n })\r\n }\r\n let tnailPicNum = 0\r\n let tnailWidth = 0\r\n let tnailHeight = 0\r\n let tnailCol = 0\r\n let tnailRow = 0\r\n let interval = 0\r\n let tnailUrls = []\r\n let coverPreviewContainer, coverPreviewPoint, coverPreviewOuter\r\n let onLoadedmetadata = function() {\r\n if (player.config.thumbnail) {\r\n if(player.config.thumbnail.isShowCoverPreview && !coverPreviewContainer) {\r\n progress.removeChild(thumbnail)\r\n coverPreviewContainer = createDom('xg-coverpreview', `<xg-outer class=\"xgplayer-coverpreview-outer\">\r\n <xg-thumbnail class=\"xgplayer-coverpreview-thumbnail\"></xg-thumbnail>\r\n <xg-point class=\"xgplayer-coverpreview-point\"></xg-point>\r\n </xg-outer>`, {tabindex: 1}, 'xgplayer-coverpreview')\r\n coverPreviewOuter = coverPreviewContainer.querySelector('.xgplayer-coverpreview-outer')\r\n coverPreviewPoint = coverPreviewContainer.querySelector('.xgplayer-coverpreview-point')\r\n thumbnail = coverPreviewContainer.querySelector('.xgplayer-coverpreview-thumbnail')\r\n player.root.appendChild(coverPreviewContainer)\r\n }\r\n tnailPicNum = player.config.thumbnail.pic_num\r\n tnailWidth = player.config.thumbnail.width\r\n tnailHeight = player.config.thumbnail.height\r\n tnailCol = player.config.thumbnail.col\r\n tnailRow = player.config.thumbnail.row\r\n tnailUrls = player.config.thumbnail.urls\r\n thumbnail.style.width = `${tnailWidth}px`\r\n thumbnail.style.height = `${tnailHeight}px`\r\n };\r\n };\r\n player.on('loadedmetadata', onLoadedmetadata);\r\n\r\n if (typeof player.config.disableSwipeHandler === 'function' && typeof player.config.enableSwipeHandler === 'function') {\r\n player.root.addEventListener('touchmove', e => {\r\n e.preventDefault();\r\n // e.stopPropagation();\r\n if (!player.disableSwipe) {\r\n player.disableSwipe = true\r\n player.config.disableSwipeHandler.call(player);\r\n }\r\n });\r\n player.root.addEventListener('touchstart', e => {\r\n // e.preventDefault();\r\n player.disableSwipe = true\r\n player.config.disableSwipeHandler.call(player);\r\n });\r\n player.root.addEventListener('touchend', e => {\r\n // e.preventDefault();\r\n player.disableSwipe = false\r\n player.config.enableSwipeHandler.call(player);\r\n });\r\n };\r\n let events = ['touchstart', 'mousedown'];\r\n if (sniffer.device === 'mobile') {\r\n // 解决在移动端触发多次seeking问题\r\n events.pop()\r\n }\r\n events.forEach(item => {\r\n container.addEventListener(item, function (e) {\r\n if (player.config.disableProgress) return;\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n if (e._target === point || (!player.config.allowSeekAfterEnded && player.ended)) {\r\n return true\r\n }\r\n\r\n container.focus()\r\n let {left} = progress.getBoundingClientRect()\r\n\r\n const isRotate = isRotateFullscreen(player)\r\n if (isRotate) {\r\n left = progress.getBoundingClientRect().top\r\n containerWidth = container.getBoundingClientRect().height\r\n } else {\r\n containerWidth = container.getBoundingClientRect().width\r\n left = progress.getBoundingClientRect().left\r\n }\r\n\r\n let move = function (e) {\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n player.isProgressMoving = true\r\n let w = (isRotate ? e.clientY : e.clientX) - left\r\n if (w > containerWidth) {\r\n w = containerWidth\r\n }\r\n let now = w / containerWidth * player.duration\r\n if(now < 0) now = 0\r\n if(player.config.allowSeekPlayed && (Number(now).toFixed(1) > player.maxPlayedTime)) {}\r\n else {\r\n progress.style.width = `${w * 100 / containerWidth}%`\r\n\r\n if (player.videoConfig.mediaType === 'video' && !player.dash && !player.config.closeMoveSeek) {\r\n console.log('trigger touchmove')\r\n player.currentTime = Number(now).toFixed(1)\r\n } else {\r\n let time = findDom(player.controls, '.xgplayer-time')\r\n if (time) {\r\n time.innerHTML = `<span class=\"xgplayer-time-current\">${format(now || 0)}</span><span>${format(player.duration)}</span>`\r\n }\r\n }\r\n }\r\n\r\n if(player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {\r\n coverPreviewPoint.innerHTML = `<span>${format(now)}</span> / ${format(player.duration || 0)}`\r\n\r\n interval = player.duration / tnailPicNum\r\n let index = Math.floor(now / interval)\r\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\r\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\r\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\r\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\r\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\r\n coverPreviewContainer.style.display = 'block'\r\n }\r\n \r\n player.emit('focus')\r\n }\r\n let up = function (e) {\r\n console.log('up event', e)\r\n // e.preventDefault()\r\n e.stopPropagation()\r\n event(e)\r\n window.removeEventListener('mousemove', move)\r\n window.removeEventListener('touchmove', move, { passive: false })\r\n window.removeEventListener('mouseup', up)\r\n window.removeEventListener('touchend', up)\r\n if(sniffer.browser.indexOf('ie') < 0) {\r\n container.blur()\r\n }\r\n if (!player.isProgressMoving || (player.videoConfig && player.videoConfig.mediaType === 'audio') || player.dash || player.config.closeMoveSeek) {\r\n let w = (isRotate ? e.clientY : e.clientX) - left\r\n if (w > containerWidth) {\r\n w = containerWidth\r\n }\r\n let now = w / containerWidth * player.duration\r\n if(now < 0) now = 0\r\n if(player.config.allowSeekPlayed && (Number(now).toFixed(1) > player.maxPlayedTime)) {}\r\n else {\r\n progress.style.width = `${w * 100 / containerWidth}%`\r\n console.warn('trigger touchup')\r\n player.currentTime = Number(now).toFixed(1)\r\n }\r\n }\r\n if(player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {\r\n coverPreviewContainer.style.display = 'none'\r\n }\r\n player.emit('focus')\r\n player.isProgressMoving = false\r\n }\r\n // if (item === 'touchstart') {\r\n window.addEventListener('touchmove', move, { passive: false })\r\n window.addEventListener('touchend', up)\r\n // } else {\r\n window.addEventListener('mousemove', move)\r\n // console.warn('add envent mouseup')\r\n window.addEventListener('mouseup', up)\r\n // }\r\n return true\r\n })\r\n })\r\n\r\n container.addEventListener('mouseenter', function (e) {\r\n if (!player.config.allowSeekAfterEnded && player.ended) {\r\n return true\r\n }\r\n const isRotate = isRotateFullscreen(player)\r\n let containerLeft = isRotate ? container.getBoundingClientRect().top : container.getBoundingClientRect().left\r\n let containerWidth = isRotate ? container.getBoundingClientRect().height : container.getBoundingClientRect().width\r\n\r\n let compute = function (e) {\r\n let now = ((isRotate ? e.clientY : e.clientX) - containerLeft) / containerWidth * player.duration\r\n now = now < 0 ? 0 : now\r\n point.textContent = format(now)\r\n let pointWidth = point.getBoundingClientRect().width\r\n if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {\r\n interval = player.duration / tnailPicNum\r\n let index = Math.floor(now / interval)\r\n thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1]})`\r\n let indexInPage = index + 1 - (tnailCol * tnailRow) * (Math.ceil((index + 1) / (tnailCol * tnailRow)) - 1)\r\n let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1\r\n let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1\r\n thumbnail.style['background-position'] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`\r\n let left = (isRotate ? e.clientY : e.clientX) - containerLeft - tnailWidth / 2\r\n left = left > 0 ? left : 0\r\n left = left < containerWidth - tnailWidth ? left : containerWidth - tnailWidth\r\n thumbnail.style.left = `${left}px`\r\n thumbnail.style.top = `${-10 - tnailHeight}px`\r\n thumbnail.style.display = 'block'\r\n point.style.left = `${left + tnailWidth / 2 - pointWidth / 2}px`\r\n } else {\r\n let left = e.clientX - containerLeft - pointWidth / 2\r\n left = left > 0 ? left : 0\r\n left = left > containerWidth - pointWidth ? containerWidth - pointWidth : left\r\n point.style.left = `${left}px`\r\n }\r\n if (hasClass(container, 'xgplayer-progress-dot-active')) {\r\n point.style.display = 'none'\r\n } else {\r\n point.style.display = 'block'\r\n }\r\n }\r\n let move = function (e) {\r\n compute(e)\r\n }\r\n let leave = function (e) {\r\n container.removeEventListener('mousemove', move, false)\r\n container.removeEventListener('mouseleave', leave, false)\r\n compute(e)\r\n point.style.display = 'none'\r\n if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {\r\n thumbnail.style.display = 'none'\r\n }\r\n }\r\n container.addEventListener('mousemove', move, false)\r\n container.addEventListener('mouseleave', leave, false)\r\n compute(e)\r\n }, false)\r\n\r\n // let lastBtnLeft = false\r\n let onTimeupdate = function () {\r\n if(player.maxPlayedTime === undefined) player.maxPlayedTime = 0\r\n if(player.maxPlayedTime < player.currentTime) player.maxPlayedTime = player.currentTime\r\n if (!containerWidth && container) {\r\n containerWidth = container.getBoundingClientRect().width\r\n }\r\n if (!player.isProgressMoving && !player.isSeeking && !player.seeking) {\r\n const precent = player.currentTime / player.duration\r\n const prevPrecent = Number(progress.style.width.replace('%', '') || '0') / Number(container.style.width || '100');\r\n if (Math.abs(precent - prevPrecent) <= 1) {\r\n progress.style.width = `${player.currentTime * 100 / player.duration}%`\r\n }\r\n }\r\n }\r\n player.on('timeupdate', onTimeupdate)\r\n\r\n let onCurrentTimeChange = function (time) {\r\n progress.style.width = `${time * 100 / player.duration}%`\r\n }\r\n player.on('currentTimeChange', onCurrentTimeChange)\r\n\r\n let onSrcChange = function () {\r\n progress.style.width = '0%'\r\n }\r\n player.on('srcChange', onSrcChange)\r\n\r\n let onCacheUpdate = function () {\r\n let buffered = player.buffered\r\n if (buffered && buffered.length > 0) {\r\n let end = buffered.end(buffered.length - 1)\r\n for (let i = 0, len = buffered.length; i < len; i++) {\r\n if (player.currentTime >= buffered.start(i) && player.currentTime <= buffered.end(i)) {\r\n end = buffered.end(i)\r\n for (let j = i + 1; j < buffered.length; j++) {\r\n if (buffered.start(j) - buffered.end(j - 1) >= 2) {\r\n end = buffered.end(j - 1)\r\n break\r\n }\r\n }\r\n break\r\n }\r\n }\r\n cache.style.width = `${end / player.duration * 100}%`\r\n }\r\n }\r\n const cacheUpdateEvents = ['bufferedChange', 'cacheupdate', 'ended', 'timeupdate']\r\n cacheUpdateEvents.forEach(item => {\r\n player.on(item, onCacheUpdate)\r\n })\r\n\r\n function destroyFunc () {\r\n player.removeAllProgressDot()\r\n player.off('canplay', onCanplay)\r\n player.off('timeupdate', onTimeupdate)\r\n player.off('currentTimeChange', onCurrentTimeChange)\r\n player.off('srcChange', onSrcChange)\r\n player.off('loadedmetadata', onLoadedmetadata);\r\n cacheUpdateEvents.forEach(item => {\r\n player.off(item, onCacheUpdate)\r\n })\r\n player.off('destroy', destroyFunc)\r\n }\r\n player.once('destroy', destroyFunc)\r\n}\r\n\r\nexport default {\r\n name: 's_progress',\r\n method: s_progress\r\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./progress.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-progress{display:block;position:absolute;height:20px;line-height:20px;left:12px;right:12px;outline:none;top:-15px;z-index:35}.xgplayer-skin-default .xgplayer-progress-outer{background:hsla(0,0%,100%,.3);display:block;height:3px;line-height:3px;margin-top:8.5px;width:100%;position:relative;cursor:pointer}.xgplayer-skin-default .xgplayer-progress-cache,.xgplayer-skin-default .xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-skin-default .xgplayer-progress-cache{width:0;background:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#fa1f41,#e31106);border-radius:0 1.5px 1.5px 0}.xgplayer-skin-default .xgplayer-progress-btn{display:none;position:absolute;left:0;top:-5px;width:13px;height:13px;border-radius:30px;background:#fff;box-shadow:0 0 2px 0 rgba(0,0,0,.26);left:100%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);z-index:36}.xgplayer-skin-default .xgplayer-progress-point{position:absolute}.xgplayer-skin-default .xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-skin-default .xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer-skin-default .xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;bottom:200%;right:50%;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);height:auto;line-height:30px;width:auto;background:rgba(0,0,0,.3);border-radius:6px;border:1px solid rgba(0,0,0,.8);cursor:default;white-space:nowrap;display:none}.xgplayer-skin-default .xgplayer-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-skin-default .xgplayer-progress-thumbnail{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box}.xgplayer-skin-default .xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-skin-default .xgplayer-coverpreview{position:absolute;width:100%;height:100%;top:0;left:0;display:none}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer{position:absolute;display:block;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-thumbnail{display:block}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point{display:block;text-align:center;font-family:PingFangSC-Regular;font-size:11px;color:#ccc;padding:2px 4px}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point span{color:#fff}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-dot{height:6px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-btn{display:block;top:-3px}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-volume-active .xgplayer-progress{z-index:15}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress-btn{display:block!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer{height:3px!important;margin-top:8.5px!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-btn{display:block!important;top:-5px!important}\", \"\"]);\n\n// exports\n","import { createDom, format } from '../../utils/util'\nimport '../style/controls/time.scss'\n\nlet s_time = function () {\n let player = this\n let container = createDom('xg-time', `<span class=\"xgplayer-time-current\">${player.currentTime || format(0)}</span>\n <span>${player.duration || format(0)}</span>`, {}, 'xgplayer-time')\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(container)\n }\n })\n let onTimeChange = function () {\n // let liveText = player.lang.LIVE\n // if(player.duration === Infinity) {\n // addClass(player.root, 'xgplayer-is-live')\n // if(!findDom(player.root, '.xgplayer-live')) {\n // const live = createDom('xg-live', liveText, {}, 'xgplayer-live')\n // player.controls.appendChild(live)\n // }\n // }\n if (player.videoConfig.mediaType !== 'audio' || !player.isProgressMoving || !player.dash) {\n container.innerHTML = `<span class=\"xgplayer-time-current\">${format(player.currentTime || 0)}</span>` + `<span>${format(player.duration)}</span>`\n }\n }\n player.on('durationchange', onTimeChange)\n player.on('timeupdate', onTimeChange)\n\n function onDestroy () {\n player.off('durationchange', onTimeChange)\n player.off('timeupdate', onTimeChange)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_time',\n method: s_time\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-time{-webkit-order:2;-moz-box-ordinal-group:3;order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;height:40px;text-align:center;display:inline-block;margin:auto 8px}.xgplayer-skin-default .xgplayer-time span{color:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current{color:#fff}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current:after{content:\\\"/\\\";display:inline-block;padding:0 3px}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport ReplayIcon from '../assets/replay.svg'\nimport '../style/controls/replay.scss'\n\nlet s_replay = function () {\n let player = this\n let root = player.root\n\n let replayText = player.lang.REPLAY\n let btn = createDom('xg-replay', `${ReplayIcon}\n <xg-replay-txt class=\"xgplayer-replay-txt\">${replayText}</xg-replay-txt>\n `, {}, 'xgplayer-replay')\n player.once('ready', () => {\n root.appendChild(btn)\n })\n\n function onEnded () {\n let path = btn.querySelector('path')\n if(path) {\n let transform = window.getComputedStyle(path).getPropertyValue('transform')\n if(typeof transform === 'string' && transform.indexOf('none') > -1) {\n return\n } else {\n path.setAttribute('transform', transform)\n }\n }\n }\n player.on('ended', onEnded)\n\n function onBtnClick (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n btn.addEventListener('click', onBtnClick)\n\n let svg = btn.querySelector('svg');\n\n ['click', 'touchend'].forEach(item => {\n svg.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('replayBtnClick')\n })\n })\n\n function destroyFunc () {\n player.off('ended', onEnded)\n player.off('destroy', destroyFunc)\n }\n player.once('destroy', destroyFunc)\n}\n\nexport default {\n name: 's_replay',\n method: s_replay\n}","export default \"<svg class=\\\"xgplayer-replay-svg\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"78\\\" height=\\\"78\\\" viewbox=\\\"0 0 78 78\\\">\\n <path d=\\\"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\\\"></path>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./replay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:105;display:none;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center;background:rgba(0,0,0,.54);-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.xgplayer-skin-default .xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-skin-default .xgplayer-replay svg path{-webkit-transform:translate(20px,21px);-ms-transform:translate(20px,21px);transform:translate(20px,21px);fill:#ddd}.xgplayer-skin-default .xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-skin-default .xgplayer-replay svg:hover path{fill:#fff}.xgplayer-skin-default .xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-replay{display:-webkit-flex;display:-moz-box;display:flex}\", \"\"]);\n\n// exports\n","var ERROR = [{\n code: 0,\n msg: \"SUCCESS\"\n}, {\n code: 1,\n msg: \"LOAD_ERROR\"\n}, {\n code: 2,\n msg: \"PARSER_ERROR\"\n}, {\n code: 3,\n msg: \"FORMAT_NOT_SUPPORTED\"\n}, {\n code: 4,\n msg: \"ID_OR_LANGUAGE_NOT_EXIST\"\n}, {\n code: 5,\n msg: \"PARAMETERS_ERROR\"\n}, {\n code: 6,\n msg: \"ABORT\"\n}, {\n code: 7,\n msg: \"UNKNOWN\"\n}, {\n code: 8,\n msg: \"DATA_ERROR:subtitle.url is null\"\n}, {\n code: 9,\n msg: \"DATA_ERROR:subtitle.url length is 0\"\n}];\nfunction _ERROR(code) {\n var error = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var ret = {\n code: ERROR[code].code,\n msg: ERROR[code].msg\n };\n Object.keys(error).map(function(key) {\n ret[key] = error[key];\n });\n return ret;\n}\nexport { _ERROR };\n","import { createClass as _createClass, classCallCheck as _classCallCheck } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nvar ProxyPromise = /* @__PURE__ */ function() {\n function ProxyPromise2() {\n _classCallCheck(this, ProxyPromise2);\n var resolvePromise;\n var rejectPromise;\n var promise = new Promise(function(resolve, reject) {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n var publicPromise = promise;\n publicPromise.resolve = function(data) {\n resolvePromise(data);\n publicPromise.state = \"fulfilled\";\n };\n publicPromise.reject = function(error) {\n rejectPromise(error);\n publicPromise.state = \"rejected\";\n publicPromise.isBreak = error === \"DESTROYED\";\n };\n publicPromise.state = \"pending\";\n return publicPromise;\n }\n _createClass(ProxyPromise2, [{\n key: \"resolve\",\n value: function resolve(value) {\n }\n }, {\n key: \"reject\",\n value: function reject(reason) {\n }\n }]);\n return ProxyPromise2;\n}();\nexport { ProxyPromise as default };\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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}","import Player from './player'\n\nimport Airplay from './controls/airplay.js'\nimport CssFullscreen from './controls/cssFullscreen.js'\nimport Danmu from './controls/danmu.js'\nimport Definition from './controls/definition.js'\nimport Download from './controls/download.js'\nimport ErrorRetryControl from './controls/errorRetry.js'\nimport Fullscreen from './controls/fullscreen.js'\nimport Keyboard from './controls/keyboard.js'\nimport LocalPreview from './controls/localPreview.js'\nimport MemoryPlay from './controls/memoryPlay.js'\nimport Miniplayer from './controls/miniplayer.js'\nimport Mobile from './controls/mobile.js'\nimport Pc from './controls/pc.js'\nimport Pip from './controls/pip.js'\nimport Play from './controls/play.js'\nimport PlayNext from './controls/playNext.js'\nimport Reload from './controls/reload.js'\nimport Replay from './controls/replay.js'\nimport Rotate from './controls/rotate.js'\nimport ScreenShot from './controls/screenShot.js'\nimport StallCheck from './controls/stallCheck.js'\nimport Start from './controls/start.js'\nimport Volume from './controls/volume.js'\nimport TextTrack from './controls/textTrack.js'\n\nPlayer.installAll([\n Airplay,\n CssFullscreen,\n Danmu,\n Definition,\n Download,\n ErrorRetryControl,\n Fullscreen,\n Keyboard,\n LocalPreview,\n MemoryPlay,\n Miniplayer,\n Mobile,\n Pc,\n Pip,\n Play,\n PlayNext,\n Reload,\n Replay,\n Rotate,\n ScreenShot,\n StallCheck,\n Start,\n Volume,\n TextTrack \n])\n\nimport './skin/index.js';\n\nexport default Player\n","let airplay = function () {\n let player = this\n if(!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent) return\n\n function onAirplayBtnClick () {\n player.video.webkitShowPlaybackTargetPicker()\n }\n player.on('airplayBtnClick', onAirplayBtnClick)\n\n function onDestroy () {\n player.off('airplayBtnClick', onAirplayBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'airplay',\n method: airplay\n}\n","import { hasClass, removeClass, addClass } from '../utils/util'\n\nlet cssFullscreen = function () {\n let player = this\n let root = player.root\n\n function onCssFullscreenBtnClick () {\n if (hasClass(root, 'xgplayer-is-cssfullscreen')) {\n player.exitCssFullscreen()\n } else {\n player.getCssFullscreen()\n }\n }\n player.on('cssFullscreenBtnClick', onCssFullscreenBtnClick)\n player.on('exitFullscreen', () => {\n removeClass(root, 'xgplayer-is-cssfullscreen')\n })\n\n function onDestroy () {\n player.off('cssFullscreenBtnClick', onCssFullscreenBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getCssFullscreen = function () {\n let player = this\n if (player.config.fluid) {\n player.root.style['padding-top'] = ''\n }\n addClass(player.root, 'xgplayer-is-cssfullscreen')\n player.emit('requestCssFullscreen')\n }\n\n player.exitCssFullscreen = function () {\n let player = this\n if (player.config.fluid) {\n player.root.style['width'] = '100%'\n player.root.style['height'] = '0'\n player.root.style['padding-top'] = `${player.config.height * 100 / player.config.width}%`\n }\n removeClass(player.root, 'xgplayer-is-cssfullscreen')\n player.emit('exitCssFullscreen')\n }\n}\n\nexport default {\n name: 'cssFullscreen',\n method: cssFullscreen\n}","import { addClass, toggleClass, copyDom, hasClass, removeClass } from '../utils/util'\n\nlet danmu = function () {\n let player = this\n\n function onInitDanmu(danmujs) {\n let container = player.root.querySelector('xg-danmu')\n addClass(container, 'xgplayer-has-danmu')\n if (!player.config.danmu.closeDefaultBtn) {\n player.danmuBtn = copyDom(danmujs.bulletBtn.createSwitch(true))\n player.controls.appendChild(player.danmuBtn)\n\n function onTimeupdate () {\n danmujs.start()\n }\n ['click', 'touchend'].forEach(item => {\n player.danmuBtn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n toggleClass(player.danmuBtn, 'danmu-switch-active')\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n player.emit('danmuBtnOn')\n addClass(container, 'xgplayer-has-danmu')\n player.once('timeupdate', onTimeupdate)\n } else {\n player.emit('danmuBtnOff')\n removeClass(container, 'xgplayer-has-danmu')\n danmujs.stop()\n }\n })\n })\n\n player.onElementClick && container.addEventListener('click', function (e) { player.onElementClick(e, container) }, false)\n player.onElementDblclick && container.addEventListener('dblclick', function (e) { player.onElementDblclick(e, container) }, false)\n\n function onPause () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.pause()\n }\n }\n player.on('pause', onPause)\n\n function onPlay () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.play()\n }\n }\n player.on('play', onPlay)\n\n function onSeeked () {\n if (hasClass(player.danmuBtn, 'danmu-switch-active')) {\n danmujs.stop()\n danmujs.start()\n }\n }\n player.on('seeked', onSeeked)\n\n function onDestroy () {\n player.off('timeupdate', onTimeupdate)\n player.off('pause', onPause)\n player.off('play', onPlay)\n player.off('seeked', onSeeked)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n }\n }\n player.on('initDefaultDanmu', onInitDanmu)\n\n}\n\nexport default {\n name: 'danmu',\n method: danmu\n}","let definition = function () {\n let player = this\n\n function onDestroy () {\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'definition',\n method: definition\n}","import downloadUtil from 'downloadjs'\nimport {getAbsoluteURL} from '../utils/url'\n\nlet download = function () {\n let player = this\n\n function onDownloadBtnClick () {\n // must pass an absolute url for download\n player.download()\n }\n player.on('downloadBtnClick', onDownloadBtnClick)\n\n function onDestroy () {\n player.off('downloadBtnClick', onDownloadBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.download = function () {\n const url = getAbsoluteURL(this.config.url)\n downloadUtil(url)\n }\n}\n\nexport default {\n name: 'download',\n method: download\n}","//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","\nexport const getAbsoluteURL = function (url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n const div = document.createElement('div')\n div.innerHTML = `<a href=\"${url}\">x</a>`\n url = div.firstChild.href\n }\n return url\n}\n","import Errors from '../error'\n/**\n * Error retry plugin\n * get config from player.config.errorConfig\n * The Plugin is just deal with the situation that play with video.src,\n * and get the http status of current video.src\n */\n\nconst defaultConfig = {\n maxCount: 3, // max number of retries\n backupUrl: '', // the backup url for retry\n isFetch: true, // is need to check the cdn url statud\n fetchTimeout: 100 // timeout time for get cdn status\n}\n\nfunction errorRetry () {\n const player = this\n // 无设置参数或者是通过扩展播放的不做处理\n if (!player.config.errorConfig || player.src.indexOf('blob:') > -1) {\n return\n }\n const errorConfig = {}\n const _inConfig = player.config.errorConfig\n for (const key in defaultConfig) {\n if (_inConfig[key] === undefined) {\n errorConfig[key] = defaultConfig[key]\n } else {\n errorConfig[key] = _inConfig[key]\n }\n }\n player.retryData = {\n count: 0, // 重试次数\n errfTimer: null, // 超时设置定时器\n isFetchReturn: false, // fetch请求是否已经返回\n currentTime: 0 // 出错的时候时间\n }\n\n function errorfetch (player, url, timeout) {\n const resolveFun = (resolve, data) => {\n if (!player.retryData.isFetchReturn) {\n player.retryData.isFetchReturn = true\n resolve(data)\n }\n }\n return new Promise((resolve, reject) => {\n try {\n let xhr = new window.XMLHttpRequest()\n xhr.open('get', url)\n xhr.onload = function () {\n resolveFun(resolve, {status: xhr.status, statusText: xhr.statusText, xhr})\n }\n xhr.onerror = function () {\n resolveFun(resolve, {status: xhr.status, statusText: xhr.statusText || 'The network environment is disconnected or the address is invalid', xhr})\n }\n xhr.onabort = function () {\n // console.log('task onerror', xhr)\n }\n player.retryData.errfTimer = window.setTimeout(() => {\n let errfTimer = player.retryData.errfTimer\n window.clearTimeout(errfTimer)\n player.retryData.errfTimer = null\n resolveFun(resolve, {status: -1, statusText: 'request timeout'})\n }, timeout)\n xhr.send()\n } catch (err) {\n player.retryData.isFetchReturn = true\n resolveFun(resolve, {status: -2, statusText: 'request error'})\n }\n })\n }\n\n function retryCanPlay () {\n // console.log(`retryCanPlay this.retryData.currentTime:${this.retryData.currentTime}`)\n this.currentTime = this.retryData.currentTime\n this.play()\n this.retryData.retryCode = 0\n this.retryData.isFetchReturn = false\n this.retryData.currentTime = 0\n }\n\n const _originErrorEmit = player._onError\n player._onError = (data) => {\n const errorCount = this.retryData.count\n // console.log(`originErrorEmit:errorCount:${errorCount}`, data)\n if (errorCount > errorConfig.maxCount) {\n if (errorConfig.isFetch) {\n errorfetch(this, this.currentSrc, errorConfig.fetchTimeout).then((data) => {\n this.emit('error', new Errors({\n type: 'network',\n currentTime: this.currentTime,\n duration: this.duration || 0,\n networkState: this.networkState,\n readyState: this.readyState,\n currentSrc: this.currentSrc,\n src: this.src,\n ended: this.ended,\n httpCode: data.status,\n httpMsg: data.statusText,\n errd: {\n line: 101,\n msg: this.error,\n handle: 'plugin errorRetry'\n },\n errorCode: this.video && this.video.error.code,\n mediaError: this.video && this.video.error\n }));\n _originErrorEmit.call(this, data)\n })\n } else {\n _originErrorEmit.call(this, data)\n }\n return;\n }\n if (errorCount === 0) {\n this.retryData.currentTime = this.currentTime\n this.once('canplay', retryCanPlay.bind(this))\n }\n let src = ''\n if (errorConfig.count < 2) {\n src = errorConfig.backupUrl ? errorConfig.backupUrl : player.currentSrc\n } else {\n src = errorConfig.backupUrl && errorCount > 1 ? errorConfig.backupUrl : player.currentSrc\n }\n this.retryData.count++\n this.src = src\n }\n}\n\nexport default {\n name: 'errorretry',\n method: errorRetry\n}","import { on, hasClass, removeClass, addClass } from '../utils/util'\nclass Keyboard {\n constructor (player) {\n this.player = player\n this.state = {\n playbackRate: 0,\n isRepeat: false,\n keyCode: 0,\n repeat: 0,\n isBody: false\n }\n this.timer = null\n this.initEvents()\n }\n\n initEvents () {\n const {root, config} = this.player\n this.player.onBodyKeydown = this.onBodyKeydown.bind(this)\n this.player.onKeydown = this.onKeydown.bind(this)\n this.player.onKeyup = this.onKeyup.bind(this)\n if (!config.keyShortcut || config.keyShortcut === 'on') {\n document.addEventListener('keydown', this.player.onBodyKeydown)\n root.addEventListener('keydown', this.player.onKeydown)\n let destroyFunc = () => {\n document.removeEventListener('keydown', this.player.onBodyKeydown)\n root.removeEventListener('keydown', this.player.onKeydown)\n clearTimeout(this.timer)\n this.timer = null\n }\n on(this.player, 'destroy', destroyFunc)\n }\n }\n\n checkTarget (e) {\n const {player} = this\n return e.target === player.root || e.target === player.video || e.target === player.controls\n }\n\n onBodyKeydown (event) {\n let e = event || window.event\n const keyCode = e.keyCode\n if ((e.target === document.body) && (keyCode === 37 || keyCode === 39 || keyCode === 32)) {\n e.preventDefault()\n e.cancelBubble = true\n e.returnValue = false\n if (!e.repeat) {\n document.addEventListener('keyup', this.player.onKeyup)\n }\n this.handler(e)\n return false\n }\n }\n\n onKeydown (event) {\n let e = event || window.event\n const keyCode = e.keyCode\n if (this.checkTarget(e) && (keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40 || keyCode === 32 || keyCode === 27)) {\n e.preventDefault()\n e.cancelBubble = true\n e.returnValue = false\n this.player.emit('focus')\n if (!e.repeat) {\n this.player.root.addEventListener('keyup', this.player.onKeyup)\n }\n this.handler(e)\n return false\n }\n }\n\n onKeyup () {\n const {state, player} = this\n document.removeEventListener('keyup', this.player.onKeyup)\n player.root.removeEventListener('keyup', this.player.onKeyup)\n if (!state.keyCode) {\n return\n }\n if (state.playbackRate !== 0) {\n player.playbackRate = state.playbackRate\n }\n\n if (!state.isRepeat) {\n this.handlerKeyCode(state.keyCode, false)\n }\n state.playbackRate = 0\n state.isRepeat = false\n state.keyCode = 0\n state.repeat = 0\n this.changeVolumeSlide()\n }\n\n handler (e) {\n const {state, player} = this\n state.keyCode = e.keyCode\n state.isRepeat = e.repeat\n if (e.repeat) {\n if (player.config.disableLongPress) {\n this.handlerKeyCode(state.keyCode, false)\n } else if(state.repeat % 2 === 0) {\n this.handlerKeyCode(state.keyCode, true)\n }\n state.repeat++\n }\n }\n\n handlerKeyCode (keyCode, isLonePress) {\n const {player, state} = this\n switch (keyCode) {\n case 39:\n // 快进\n if (isLonePress) {\n state.repeat === 0 && this.changeRate()\n } else {\n this.seek(false, isLonePress)\n }\n break\n case 37:\n // 快退\n this.seek(true, isLonePress)\n break\n case 38:\n this.changeVolume(true)\n // 上\n break\n case 40:\n this.changeVolume(false)\n // 下\n break\n case 32:\n if (!isLonePress) {\n player.paused ? player.play() : player.pause()\n }\n break\n case 27:\n if (hasClass(player.root, 'xgplayer-is-cssfullscreen')) {\n player.exitCssFullscreen()\n }\n break\n default:\n //\n }\n }\n\n seek (isBack, isLongPress) {\n const {player} = this\n const keyShortcutStep = player.config.keyShortcutStep || {}\n const currentTimeStep = keyShortcutStep.currentTime || 10\n if (player.isLoading || player.isSeeking || (isLongPress && this.state.repeat % 8 > 0)) {\n return\n }\n if (isBack) {\n if (player.currentTime - currentTimeStep >= 0) {\n player.currentTime -= currentTimeStep\n } else {\n player.currentTime = 0\n }\n } else {\n if(player.maxPlayedTime && player.config.allowSeekPlayed && (player.currentTime + currentTimeStep > player.maxPlayedTime)) {\n player.currentTime = player.maxPlayedTime\n } else {\n if (player.currentTime + currentTimeStep <= player.duration) {\n player.currentTime += currentTimeStep\n } else {\n player.currentTime = player.duration + 1\n }\n }\n }\n }\n\n changeRate () {\n this.state.playbackRate = this.player.playbackRate\n this.player.playbackRate = this.player.config.keyboardRate || 5\n }\n\n changeVolumeSlide (show) {\n const {player} = this\n if (!player.controls) {\n return\n }\n if (show) {\n player.emit('focus')\n if (!hasClass(player.root, 'xgplayer-volume-active')) {\n addClass(player.root, 'xgplayer-volume-active')\n }\n } else {\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n removeClass(player.root, 'xgplayer-volume-active')\n }, 1000)\n }\n }\n\n changeVolume (isup) {\n const {player} = this\n const keyShortcutStep = player.config.keyShortcutStep || {}\n const volumeStep = keyShortcutStep.volume || 0.1\n this.changeVolumeSlide(true)\n const volume = player.volume\n if (isup && volume + volumeStep <= 1) {\n player.volume = volume + volumeStep\n } else if (!isup && volume - volumeStep >= 0) {\n player.volume = volume - volumeStep\n }\n }\n}\n\nlet keyboard = function () {\n let player = this\n player.keyboard = new Keyboard(player)\n}\n\nexport default {\n name: 'keyboard',\n method: keyboard\n}","import { hasClass } from '../utils/util'\n\nlet localPreview = function () {\n let player = this\n let root = player.root\n function onUpload (upload) {\n player.uploadFile = upload.files[0]\n let url = URL.createObjectURL(player.uploadFile)\n if (hasClass(root, 'xgplayer-nostart')) {\n player.config.url = url\n player.start()\n } else {\n player.src = url\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n }\n player.on('upload', onUpload)\n\n function onDestroy () {\n player.off('upload', onUpload)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'localPreview',\n method: localPreview\n}","let memoryPlay = function () {\n let player = this\n player.on('memoryPlayStart', (lastPlayTime) => {\n setTimeout(() => {\n console.log('memoryPlayStart', lastPlayTime, player.readyState, 11)\n player.currentTime = lastPlayTime\n },)\n })\n}\n\nexport default {\n name: 'memoryPlay',\n method: memoryPlay\n}","import { findDom, hasClass, createDom, addClass, removeClass } from '../utils/util'\nimport Draggabilly from 'draggabilly'\n\nlet miniplayer = function () {\n let player = this\n let root = player.root\n function onMiniplayerBtnClick () {\n if (hasClass(root, 'xgplayer-miniplayer-active')) {\n player.exitMiniplayer()\n } else {\n player.getMiniplayer()\n }\n }\n player.on('miniplayerBtnClick', onMiniplayerBtnClick)\n\n function onDestroy () {\n player.off('miniplayerBtnClick', onMiniplayerBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getMiniplayer = function () {\n if (hasClass(root, 'xgplayer-is-fullscreen')) {\n this.exitFullscreen(root)\n }\n if (hasClass(root, 'xgplayer-is-cssfullscreen')) {\n this.exitCssFullscreen()\n }\n if (hasClass(root, 'xgplayer-rotate-fullscreen')) {\n this.exitRotateFullscreen()\n }\n // let ro = this.root.getBoundingClientRect()\n // let Top = ro.top\n // let Left = ro.left\n let dragLay = createDom('xg-miniplayer-lay', '<div></div>', {}, 'xgplayer-miniplayer-lay')\n this.root.appendChild(dragLay)\n let dragHandle = createDom('xg-miniplayer-drag', `<div class=\"drag-handle\"><span>${this.lang.MINIPLAYER_DRAG}</span></div>`, {tabindex: 9}, 'xgplayer-miniplayer-drag')\n this.root.appendChild(dragHandle)\n // eslint-disable-next-line no-unused-vars\n let draggie = new Draggabilly('.xgplayer', {\n handle: '.drag-handle'\n })\n addClass(this.root, 'xgplayer-miniplayer-active')\n this.root.style.right = 0\n this.root.style.bottom = '200px'\n this.root.style.top = ''\n this.root.style.left = ''\n this.root.style.width = '320px'\n this.root.style.height = '180px'\n if (this.config.miniplayerConfig) {\n if (this.config.miniplayerConfig.top !== undefined) {\n this.root.style.top = this.config.miniplayerConfig.top + 'px'\n this.root.style.bottom = ''\n }\n if (this.config.miniplayerConfig.bottom !== undefined) {\n this.root.style.bottom = this.config.miniplayerConfig.bottom + 'px'\n }\n if (this.config.miniplayerConfig.left !== undefined) {\n this.root.style.left = this.config.miniplayerConfig.left + 'px'\n this.root.style.right = ''\n }\n if (this.config.miniplayerConfig.right !== undefined) {\n this.root.style.right = this.config.miniplayerConfig.right + 'px'\n }\n if (this.config.miniplayerConfig.width !== undefined) {\n this.root.style.width = this.config.miniplayerConfig.width + 'px'\n }\n if (this.config.miniplayerConfig.height !== undefined) {\n this.root.style.height = this.config.miniplayerConfig.height + 'px'\n }\n }\n if (this.config.fluid) {\n this.root.style['padding-top'] = ''\n }\n let player = this;\n ['click', 'touchend'].forEach(item => {\n dragLay.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.exitMiniplayer()\n // player.root.style.top = `${Top}px`\n // player.root.style.left = `${Left}px`\n })\n })\n }\n\n player.exitMiniplayer = function () {\n removeClass(this.root, 'xgplayer-miniplayer-active')\n this.root.style.right = ''\n this.root.style.bottom = ''\n this.root.style.top = ''\n this.root.style.left = ''\n if (this.config.fluid) {\n this.root.style['width'] = '100%'\n this.root.style['height'] = '0'\n this.root.style['padding-top'] = `${this.config.height * 100 / this.config.width}%`\n } else {\n if (this.config.width) {\n if (typeof this.config.width !== 'number') {\n this.root.style.width = this.config.width\n } else {\n this.root.style.width = `${this.config.width}px`\n }\n }\n if (this.config.height) {\n if (typeof this.config.height !== 'number') {\n this.root.style.height = this.config.height\n } else {\n this.root.style.height = `${this.config.height}px`\n }\n }\n }\n\n let dragLay = findDom(this.root, '.xgplayer-miniplayer-lay')\n if (dragLay && dragLay.parentNode) {\n dragLay.parentNode.removeChild(dragLay)\n }\n let dragHandle = findDom(this.root, '.xgplayer-miniplayer-drag')\n if (dragHandle && dragHandle.parentNode) {\n dragHandle.parentNode.removeChild(dragHandle)\n }\n }\n}\n\nexport default {\n name: 'miniplayer',\n method: miniplayer\n}","/*!\n * Draggabilly v2.4.1\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.4.0\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.4.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 ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\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","\nimport { PresentationMode, checkWebkitSetPresentationMode, addClass, removeClass} from '../utils/util'\n\nlet pip = function () {\n let player = this\n function onPipBtnClick () {\n if (player.video !== document.pictureInPictureElement) {\n player.video.requestPictureInPicture()\n } else {\n document.exitPictureInPicture()\n }\n }\n player.on('pipBtnClick', onPipBtnClick)\n\n const onWebkitpresentationmodechanged = (e) => {\n const mode = player.video.webkitPresentationMode\n this.pMode = mode\n if (mode === PresentationMode.PIP) {\n // 进入pip模式\n player.emit('requestPictureInPicture', e.pictureInPictureWindow)\n } else if (mode === PresentationMode.INLINE) {\n // 退出pip,进去inline模式\n player.emit('exitPictureInPicture')\n }\n }\n\n player.video.addEventListener('enterpictureinpicture', function (pipWindow) {\n addClass(player.root, 'xgplayer-pip-active')\n player.emit('requestPictureInPicture', pipWindow)\n })\n\n player.video.addEventListener('leavepictureinpicture', function () {\n removeClass(player.root, 'xgplayer-pip-active')\n player.emit('exitPictureInPicture')\n })\n\n checkWebkitSetPresentationMode(player.video) &&\n player.video.addEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n\n function onDestroy () {\n player.off('pipBtnClick', onPipBtnClick)\n player.off('destroy', onDestroy)\n checkWebkitSetPresentationMode(player.video) &&\n player.video.removeEventListener('webkitpresentationmodechanged', onWebkitpresentationmodechanged)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'pip',\n method: pip\n}\n","let playNext = function () {\n let player = this\n let nextBtn = player.config.playNext\n player.currentVideoIndex = -1\n\n function onPlayNextBtnClick () {\n if (player.currentVideoIndex + 1 < nextBtn.urlList.length) {\n player.currentVideoIndex++\n player.video.autoplay = true\n player.src = nextBtn.urlList[player.currentVideoIndex]\n player.emit('playerNext', player.currentVideoIndex + 1)\n if (player.currentVideoIndex + 1 === nextBtn.urlList.length) {\n player.emit('urlListEnd')\n }\n }\n }\n player.on('playNextBtnClick', onPlayNextBtnClick)\n\n function onDestroy () {\n player.off('playNextBtnClick', onPlayNextBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'playNext',\n method: playNext\n}","import { removeClass } from '../utils/util'\n\nlet reload = function () {\n let player = this\n let reloadConfig = player.config.reload\n if (!reloadConfig) { return }\n\n function onReloadBtnClick () {\n removeClass(player.root, 'xgplayer-is-error')\n player.src = player.config.url\n }\n player.on('reloadBtnClick', onReloadBtnClick)\n\n function onDestroy () {\n player.off('reloadBtnClick', onReloadBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'reload',\n method: reload\n}","let rotate = function () {\n let player = this\n let rotateConfig = player.config.rotate\n if (!rotateConfig) { return }\n\n function onRotateBtnClick () {\n player.rotate(rotateConfig.clockwise, rotateConfig.innerRotate)\n }\n player.on('rotateBtnClick', onRotateBtnClick)\n\n function onDestroy () {\n player.off('rotateBtnClick', onRotateBtnClick)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.updateRotateDeg = function () {\n let player = this;\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n\n let width = player.root.offsetWidth\n let height = player.root.offsetHeight\n let targetWidth = player.video.videoWidth\n let targetHeight = player.video.videoHeight\n\n if (!player.config.rotate.innerRotate && player.config.rotate.controlsFix) {\n player.root.style.width = height + 'px'\n player.root.style.height = width + 'px'\n }\n\n let scale\n if (player.rotateDeg === 0.25 || player.rotateDeg === 0.75) {\n if (player.config.rotate.innerRotate) {\n if ((targetWidth / targetHeight) > (height / width)) { // 旋转后纵向撑满\n let videoWidth = 0\n if ((targetHeight / targetWidth) > (height / width)) { // 旋转前是纵向撑满\n videoWidth = height * targetWidth / targetHeight\n } else { // 旋转前是横向撑满\n videoWidth = width\n }\n scale = height / videoWidth\n } else { // 旋转后横向撑满\n let videoHeight = 0\n if ((targetHeight / targetWidth) > (height / width)) { // 旋转前是纵向撑满\n videoHeight = height\n } else { // 旋转前是横向撑满\n videoHeight = width * targetHeight / targetWidth\n }\n scale = width / videoHeight\n }\n } else {\n if (width >= height) {\n scale = width / height\n } else {\n scale = height / width\n }\n }\n scale = Number(scale.toFixed(5))\n } else {\n scale = 1\n }\n\n if (player.config.rotate.innerRotate) {\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n if (player.config.rotate.controlsFix) {\n player.video.style.transformOrigin = 'center center'\n player.video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n player.video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n player.root.style.transformOrigin = 'center center'\n player.root.style.transform = `rotate(${player.rotateDeg}turn) scale(${1})`\n player.root.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${1})`\n }\n }\n }\n\n player.rotate = function (clockwise = false, innerRotate = true, times = 1) {\n let player = this;\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n let factor = clockwise ? 1 : -1\n\n player.rotateDeg = (player.rotateDeg + 1 + factor * 0.25 * times) % 1\n this.updateRotateDeg()\n\n player.emit('rotate', player.rotateDeg * 360)\n }\n}\n\nexport default {\n name: 'rotate',\n method: rotate\n}","let screenShot = function () {\n let player = this\n let screenShotOptions = player.config.screenShot\n let callBack = null\n if (!screenShotOptions) {\n return\n }\n\n player.video.setAttribute('crossOrigin', 'anonymous')\n\n let encoderOptions = 0.92\n\n if (screenShotOptions.quality || screenShotOptions.quality === 0) {\n encoderOptions = screenShotOptions.quality\n }\n let type = screenShotOptions.type === undefined ? 'image/png' : screenShotOptions.type\n let format = screenShotOptions.format === undefined ? '.png' : screenShotOptions.format\n\n let canvas = document.createElement('canvas')\n let canvasCtx = canvas.getContext('2d')\n let img = new Image()\n\n canvas.width = this.config.width || 600\n canvas.height = this.config.height || 337.5 \n let saveScreenShot = function (data, filename) {\n let saveLink = document.createElement('a')\n saveLink.href = data\n saveLink.download = filename\n let event = document.createEvent('MouseEvents')\n event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)\n saveLink.dispatchEvent(event)\n }\n\n player.screenShot = function (save = true) {\n save = screenShotOptions.saveImg === undefined ? save : screenShotOptions.saveImg\n canvas.width = player.video.videoWidth || 600\n canvas.height = player.video.videoHeight || 337.5\n callBack = screenShotOptions.callBack\n img.onload = (function () {\n canvasCtx.drawImage(player.video, 0, 0, canvas.width, canvas.height)\n img.src = canvas.toDataURL(type, encoderOptions).replace(type, 'image/octet-stream')\n let screenShotImg = img.src.replace(/^data:image\\/[^;]+/, 'data:application/octet-stream')\n let saveFileName = screenShotOptions.fileName || player.lang.SCREENSHOT\n\n player.emit('screenShot', screenShotImg)\n if (save && callBack) {\n callBack(screenShotImg, saveFileName, format)\n } else {\n save && saveScreenShot(screenShotImg, saveFileName + format)\n }\n })()\n }\n player.on('screenShotBtnClick', player.screenShot)\n\n function onDestroy () {\n player.off('screenShotBtnClick', player.screenShot)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'screenShot',\n method: screenShot\n}","import Errors from '../error'\n\nfunction stallCheck () {\n const player = this\n if(!player.config.enableStallCheck) return;\n let lastCurrentTime = 0;\n let stallFlag, stallCheckTimer, progressTimer;\n player.once('complete', () => {\n progressTimer = setInterval(() => {\n if (player.currentTime - (lastCurrentTime || 0) > 0.1 || player.paused) {\n if (stallFlag === 1 || stallFlag === 2) {\n stallFlag = 0;\n clearTimeout(stallCheckTimer);\n stallCheckTimer = null;\n }\n } else {\n if (!stallFlag) {\n stallFlag = 1;\n stallCheckTimer = setTimeout(() => {\n if (stallFlag === 1) {\n stallFlag = 2;\n player.emit('error', new Errors('STALL'));\n }\n stallCheckTimer = null;\n }, 20000);\n }\n }\n lastCurrentTime = player.currentTime;\n }, 1000);\n })\n}\n \nexport default {\n name: 'stallCheck',\n method: stallCheck\n}\n\n\n","import { addClass, removeClass, event } from '../utils/util'\nimport sniffer from '../utils/sniffer'\n\nlet volume = function () {\n let player = this\n let root = player.root\n let container, slider, bar, selected\n function onCanplay () {\n // player.volume = sniffer.device === 'mobile' ? 1 : player.config.volume\n if(!player.controls) return\n player.volume = player.config.volume\n container = player.controls.querySelector('.xgplayer-volume')\n if(!container) return\n slider = container.querySelector('.xgplayer-slider')\n bar = container.querySelector('.xgplayer-bar')\n selected = container.querySelector('.xgplayer-drag')\n if (sniffer.device === 'mobile') {\n if(player.volume === 0) {\n player.video.muted = true\n }\n onVolumeChange()\n }\n }\n player.once('canplay', onCanplay)\n\n function onVolumeBarClick (e) {\n if(!slider) return\n player.video.muted = false\n slider.focus()\n event(e)\n\n let barRect = bar.getBoundingClientRect()\n let pos = {x: e.clientX, y: e.clientY}\n let height = selected.getBoundingClientRect().height\n let isMove = false\n let onMove = function (e) {\n e.preventDefault()\n e.stopPropagation()\n event(e)\n isMove = true\n let w = height - e.clientY + pos.y\n let now = w / barRect.height\n selected.style.height = `${w}px`\n player.volume = Math.max(Math.min(now, 1), 0)\n }\n let onUp = function (e) {\n e.preventDefault()\n e.stopPropagation()\n event(e)\n window.removeEventListener('mousemove', onMove)\n window.removeEventListener('touchmove', onMove)\n window.removeEventListener('mouseup', onUp)\n window.removeEventListener('touchend', onUp)\n\n if (!isMove) {\n let w = barRect.height - (e.clientY - barRect.top)\n let now = w / barRect.height\n selected.style.height = `${w}px`\n if (now <= 0) {\n if (player.volume > 0) {\n selected.volume = player.video.volume\n } else {\n now = selected.volume\n }\n }\n player.volume = Math.max(Math.min(now, 1), 0)\n }\n slider.volume = player.volume\n isMove = false\n }\n window.addEventListener('mousemove', onMove)\n window.addEventListener('touchmove', onMove)\n window.addEventListener('mouseup', onUp)\n window.addEventListener('touchend', onUp)\n return false\n }\n player.on('volumeBarClick', onVolumeBarClick)\n\n function onVolumeIconClick () {\n if (sniffer.device === 'mobile') {\n if (player.video.muted) {\n player.video.muted = false\n player.emit('unmute')\n player.volume = 1\n } else {\n player.video.muted = true\n player.emit('mute')\n player.volume = 0\n }\n } else {\n if(!slider) return\n player.video.muted = false\n if (player.volume < 0.1) {\n if (slider.volume < 0.1) {\n player.volume = 0.6\n } else {\n player.volume = slider.volume\n }\n player.emit('unmute')\n } else {\n player.volume = 0\n player.emit('mute')\n }\n }\n // onVolumeChange ()\n }\n player.on('volumeIconClick', onVolumeIconClick)\n\n function onVolumeIconEnter () {\n addClass(root, 'xgplayer-volume-active')\n if (container) {\n container.focus()\n }\n }\n player.on('volumeIconEnter', onVolumeIconEnter)\n\n function onVolumeIconLeave () {\n removeClass(root, 'xgplayer-volume-active')\n }\n player.on('volumeIconLeave', onVolumeIconLeave)\n\n let _changeTimer = null\n function onVolumeChange () {\n if (_changeTimer) {\n clearTimeout(_changeTimer)\n }\n _changeTimer = setTimeout(() => {\n if (sniffer.device === 'mobile') {\n removeClass(root, 'xgplayer-volume-muted')\n removeClass(root, 'xgplayer-volume-large')\n if (player.video.muted || player.video.defaultMuted) {\n if (!player.video.muted) {\n player.video.muted = true\n }\n player.video.defaultMuted = false\n addClass(root, 'xgplayer-volume-muted')\n } else {\n addClass(root, 'xgplayer-volume-large')\n }\n } else {\n removeClass(root, 'xgplayer-volume-muted')\n removeClass(root, 'xgplayer-volume-small')\n removeClass(root, 'xgplayer-volume-large')\n if (player.volume === 0 || player.muted) {\n addClass(root, 'xgplayer-volume-muted')\n } else if (player.volume < 0.5) {\n addClass(root, 'xgplayer-volume-small')\n } else {\n addClass(root, 'xgplayer-volume-large')\n }\n if (!bar) return\n let containerHeight = bar.getBoundingClientRect().height || 76\n selected.style.height = `${player.volume * containerHeight}px`\n }\n }, 50)\n }\n player.on('volumechange', onVolumeChange)\n\n function onDestroy () {\n player.off('canplay', onCanplay)\n player.off('volumeBarClick', onVolumeBarClick)\n player.off('volumeIconClick', onVolumeIconClick)\n player.off('volumeIconEnter', onVolumeIconEnter)\n player.off('volumeIconLeave', onVolumeIconLeave)\n player.off('volumechange', onVolumeChange)\n player.off('destroy', onDestroy)\n if (_changeTimer) {\n clearTimeout(_changeTimer);\n _changeTimer = null;\n }\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'volume',\n method: volume\n}","import SubTitles from 'xgplayer-subtitles'\nconst defaultStyle = {\n follow: true, // 是否跟随控制栏调整位置\n mode: 'stroke', // 字体显示模式,默认是描边\n followBottom: 50, // 跟随底部控制栏的高度\n fitVideo: true, // 是否跟随视频自动调整字号\n offsetBottom: 2, // 字幕距离画面底部百分比,默认2%\n baseSizeX: 49, // 横屏视频适配基准字号\n baseSizeY: 28, // 竖屏视频适配基准字号\n minSize: 16, // pc端最小字号\n minMobileSize: 13, // 移动端最小字号\n line: 'double', // 最大显示行数 single/double/three\n fontColor: '#fff' // 字体颜色\n}\n\n// function createSubTitle (textTrack, style = {}, defaultOpen = true) {\n// const config = {\n// subTitles: textTrack,\n// defaultOpen: defaultOpen\n// }\n\n// Object.keys(style).map(key => {\n// config[key] = style[key]\n// })\n// return new SubTitles(config)\n// }\n\nclass XgSubtitles {\n constructor (player, list, style) {\n const subtitle = this.create(list, style, player.textTrackShowDefault)\n subtitle.attachPlayer(player)\n this.subtitle = subtitle\n this.player = player\n this.positionData = {\n vBottom: 0,\n marginBottom: 0\n }\n this.isActive = false\n this.followBottom = style.followBottom;\n ['onSubtitleResize', 'onFocus', 'onBlur'].map(item => {\n this[item] = this[item].bind(this)\n })\n\n if (player.controls && style.follow) {\n this.subtitle.on('resize', this.onSubtitleResize)\n player.on('focus', this.onFocus)\n player.on('blur', this.onBlur)\n }\n }\n\n create (textTrack, style = {}, defaultOpen = true) {\n const config = {\n subTitles: textTrack,\n defaultOpen: defaultOpen\n }\n Object.keys(style).map(key => {\n config[key] = style[key]\n })\n return new SubTitles(config)\n }\n\n switch (subtitle) {\n return this.subtitle.switch(subtitle)\n }\n\n switchOff () {\n return this.subtitle.switchOff()\n }\n\n setSubTitles (subtitles, showDefault, isNeedMove) {\n return this.subtitle.setSubTitles(subtitles, showDefault, isNeedMove)\n }\n\n onFocus () {\n const { marginBottom, vBottom } = this.positionData\n if (this.isActive || !marginBottom) {\n return\n }\n this.isActive = true\n let bottom = marginBottom + vBottom\n if (this.followBottom > bottom) {\n bottom = this.followBottom\n }\n this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)\n }\n\n onBlur () {\n this.isActive = false\n const bottom = this.positionData.vBottom + this.positionData.marginBottom\n this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)\n }\n\n onSubtitleResize (data) {\n this.positionData.vBottom = data.vBottom\n this.positionData.marginBottom = data.marginBottom\n }\n\n destroy () {\n this.subtitle.off('resize', this.onSubtitleResize)\n this.player.off('focus', this.onFocus)\n this.player.off('blur', this.onBlur)\n this.subtitle.destroy()\n this.subtitle = null\n }\n}\n\nlet textTrack = function () {\n const player = this\n const { textTrack } = player.config\n if (!textTrack) {\n return\n }\n let textTrackStyle = player.config.textTrackStyle || {}\n Object.keys(defaultStyle).map(key => {\n if (textTrackStyle[key] === undefined) {\n textTrackStyle[key] = defaultStyle[key]\n }\n })\n player.textTrackShowDefault = false\n player.config.textTrack.map((item, index) => {\n if (!item.id && !item.language) {\n item.id = index\n }\n !item.url && (item.url = item.src)\n !item.language && (item.language = item.srclang)\n item.isDefault === undefined && (item.isDefault = item.default)\n !player.textTrackShowDefault && (player.textTrackShowDefault = item.isDefault || item.default)\n })\n\n this.subTitles = new XgSubtitles(player, player.config.textTrack, textTrackStyle)\n\n player.setSubTitles = (textTrack, needRemove = true) => {\n let showDefault = false\n textTrack.map((item, index) => {\n if (!item.id && !item.language) {\n item.id = index\n }\n !item.url && (item.url = item.src)\n !item.language && (item.language = item.srclang)\n item.isDefault === undefined && (item.isDefault = item.default)\n item.isDefault && (showDefault = true)\n })\n player.textTrackShowDefault = showDefault\n this.subTitles.setSubTitles(textTrack, showDefault, needRemove)\n player.emit('subtitle_change', {\n off: false,\n isListUpdate: true,\n list: textTrack\n })\n }\n\n player.switchSubTitle = (subtitle = { id: '', language: '' }) => {\n this.subTitles.switch(subtitle).then(data => {\n if (data.code === 0) {\n subtitle.off = false\n subtitle.isListUpdate = false\n subtitle.list = []\n player.emit('subtitle_change', subtitle)\n }\n })\n }\n\n player.switchOffSubtile = () => {\n this.subTitles.switchOff()\n player.emit('subtitle_change', {\n off: true,\n isListUpdate: false,\n list: []\n })\n }\n\n function onDestroy () {\n this.subTitles.destroy()\n this.subTitles = null\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 'textTrack',\n method: textTrack\n}\n","import { inherits as _inherits, createSuper as _createSuper, createClass as _createClass, classCallCheck as _classCallCheck, defineProperty as _defineProperty, assertThisInitialized as _assertThisInitialized, possibleConstructorReturn as _possibleConstructorReturn, objectSpread2 as _objectSpread2, get as _get, getPrototypeOf as _getPrototypeOf } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nimport EventEmitter from \"eventemitter3\";\nimport { isMobile, typeOf, checkSubtitle, addCSS, addClass, parse, loadSubTitle, findIndexByTime, findCIndexByTime, getItemsByIndex, createDom, removeClass } from \"./utils.js\";\nimport { addObserver, unObserver } from \"./observer.js\";\nimport { EVENTS } from \"./constants.js\";\nimport { _ERROR } from \"./error.js\";\nimport ProxyPromise from \"./proxyPromise.js\";\nfunction formatUrl(url) {\n var ret = [];\n if (url && typeOf(url) === \"String\") {\n ret.push({\n url,\n index: 0,\n start: -1,\n end: -1\n });\n } else if (typeOf(url) === \"Array\") {\n url.forEach(function(item, i) {\n ret.push({\n url: item.url || item.src,\n index: i,\n start: item.start || -1,\n end: item.end || -1\n });\n });\n }\n return ret;\n}\nvar IS_MOBILE = false;\nvar Subtitle = /* @__PURE__ */ function(_EventEmitter) {\n _inherits(Subtitle2, _EventEmitter);\n var _super = _createSuper(Subtitle2);\n function Subtitle2(options) {\n var _this;\n _classCallCheck(this, Subtitle2);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"_onTimeupdate\", function() {\n if (!_this._isOpen) {\n return;\n }\n var _this$player$video = _this.player.video, videoWidth = _this$player$video.videoWidth, videoHeight = _this$player$video.videoHeight;\n if (!_this._videoMeta.scale && videoWidth && videoHeight) {\n _this._onResize(_this.player.root);\n }\n var curTime = _this._getPlayerCurrentTime();\n if (Math.round(Math.abs(curTime * 1e3 - _this._ctime)) < 200) {\n return;\n }\n _this._ctime = curTime * 1e3;\n if (_this.currentText && _this.currentText.list) {\n _this.config.updateMode === \"live\" ? _this._liveUpdate(curTime) : _this._update(curTime);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"getItemsByIndex\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_onResize\", function(target) {\n var _assertThisInitialize = _assertThisInitialized(_this), _videoMeta = _assertThisInitialize._videoMeta, config = _assertThisInitialize.config;\n if (!config.domRender) {\n return;\n }\n if (!target || !(target instanceof window.Element)) {\n target = _this.player.root;\n }\n if (_this._iId) {\n clearTimeout(_this._iId);\n _this._iId = null;\n }\n if (!_videoMeta.scale) {\n if (!_this.player.video) {\n return;\n }\n var _this$player$video2 = _this.player.video, videoWidth = _this$player$video2.videoWidth, videoHeight = _this$player$video2.videoHeight;\n if (videoWidth && videoHeight) {\n _videoMeta.videoWidth = videoWidth;\n _videoMeta.videoHeight = videoHeight;\n _videoMeta.scale = parseInt(videoHeight / videoWidth * 100, 10);\n } else {\n return;\n }\n }\n _this.__startResize(target);\n });\n _defineProperty(_assertThisInitialized(_this), \"_onCoreEvents\", function(e) {\n try {\n switch (e.eventName) {\n case \"core.subtitlesegments\":\n _this._onSubtitleSegment(e.list || []);\n break;\n case \"core.subtitleplaylist\":\n _this._onSubtitlePlaylist(e.list || []);\n break;\n case \"core.seipayloadtime\":\n _this._onCoreSeiintime(e);\n break;\n default:\n }\n } catch (e2) {\n console.error(e2);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"destroy\", function() {\n _this.detachPlayer();\n _this.removeAllListeners();\n _this.player = null;\n _this.textTrack = null;\n });\n IS_MOBILE = isMobile();\n _this.currentText = null;\n _this.currentExtText = null;\n _this.textTrack = [];\n _this._cid = -1;\n _this._gid = -1;\n _this._cids = [];\n _this._iId = null;\n _this._iC = 0;\n _this.player = null;\n _this.root = null;\n _this.config = {\n line: \"double\",\n bottom: 0,\n mode: \"stroke\",\n defaultOpen: false,\n baseSizeX: 49,\n baseSizeY: 28,\n minSize: 16,\n minMobileSize: 13,\n fitVideo: true,\n offsetBottom: 2,\n fontColor: \"#fff\",\n domRender: true,\n updateMode: \"vod\",\n debugger: false\n };\n _this._ctime = 0;\n _this._loadingTrack = {};\n Object.keys(_this.config).map(function(key) {\n if (options[key] !== void 0 && options[key] !== null) {\n _this.config[key] = options[key];\n }\n });\n _this._isOpen = _this.config.defaultOpen || false;\n _this._videoMeta = {\n scale: 0,\n videoHeight: 0,\n videoWidth: 0,\n lwidth: 0,\n lheight: 0,\n vWidth: 0,\n vHeight: 0,\n vBottom: 0,\n vLeft: 0,\n marginBottom: 0\n };\n if (!options.subTitles || typeOf(options.subTitles) !== \"Array\") {\n return _possibleConstructorReturn(_this);\n }\n if (options.player) {\n _this.attachPlayer(options.player);\n }\n _this.seiTime = 0;\n _this.lastSeiTime = 0;\n _this._curTexts = [];\n _this.setSubTitles(options.subTitles, _this.config.defaultOpen);\n return _this;\n }\n _createClass(Subtitle2, [{\n key: \"version\",\n get: function get() {\n return \"1.1.1\";\n }\n }, {\n key: \"setSubTitles\",\n value: function setSubTitles() {\n var _this2 = this;\n var subTitles = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];\n var isOpen = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n var ieRemoveFirst = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;\n var _isOpen = this._isOpen || isOpen;\n ieRemoveFirst && this.innerRoot && this.switchOff();\n this.currentText = null;\n this.textTrack = [];\n subTitles.forEach(function(item) {\n var text = {};\n Object.keys(item).map(function(key) {\n text[key] = item[key];\n });\n text.url = formatUrl(text.url);\n if (text.isDefault) {\n _this2.currentText = text;\n }\n _this2.textTrack.push(text);\n });\n this._log(\"setSubTitles\", _isOpen);\n if (_isOpen) {\n this.switch().catch(function(e) {\n _this2._log(\"[switch]\", e);\n });\n }\n this.currentText && this._loadTrack(this.currentText).then(function(textTrack) {\n _this2.addStyles(textTrack);\n });\n this.emit(\"reset\", {\n list: this.textTrack,\n isOpen: _isOpen\n });\n }\n }, {\n key: \"updateSubTitle\",\n value: function updateSubTitle(subTitle) {\n var _this3 = this;\n var index = -1;\n for (var i = 0; i < this.textTrack.length; i++) {\n if (checkSubtitle(subTitle, this.textTrack[i])) {\n index = i;\n break;\n }\n }\n this._log(\"updateSubTitle\", index, subTitle);\n if (index > -1) {\n var _isCurrent = checkSubtitle(this.currentText, this.textTrack[index]);\n this._log(\"updateSubTitle\", \"_isCurrent\", _isCurrent, \"this.isOpen\", this.isOpen, this.currentText);\n if (!_isCurrent) {\n return;\n }\n var url = formatUrl(subTitle.url);\n if (!this.isOpen) {\n this.textTrack[index].url = url;\n } else {\n url.forEach(function(item) {\n _this3.textTrack[index].url.push(item);\n });\n this._log(\"updateSubTitle _loadTrackUrls\", this.textTrack[index]);\n this._loadTrackUrls(this.currentText, 2);\n }\n }\n }\n }, {\n key: \"addStyles\",\n value: function addStyles(textTrack) {\n var styles = textTrack.styles, format = textTrack.format;\n if (styles && format === \"vtt\") {\n styles.map(function(item) {\n if (!item.key) {\n item.key = \"xg-text-track-span\";\n }\n });\n addCSS(styles, \"xg-text-track\");\n }\n }\n }, {\n key: \"attachPlayer\",\n value: function attachPlayer(player) {\n var _this4 = this;\n this._log(\"attachPlayer\");\n if (!player) {\n return;\n }\n if (this.player) {\n this.detachPlayer();\n }\n var _this$config = this.config, fontColor = _this$config.fontColor, mode = _this$config.mode, fitVideo = _this$config.fitVideo, domRender = _this$config.domRender;\n this.player = player;\n if (domRender) {\n this.root = document.createElement(\"xg-text-track\");\n this.root.className = \"xg-text-track\";\n !this._isOpen && addClass(this.root, \"text-track-hide\");\n !fitVideo && addClass(this.root, \"text-track-no-fitvideo\");\n mode && addClass(this.root, \"text-track-\".concat(mode));\n this.innerRoot = document.createElement(\"xg-text-track-inner\");\n this.root.appendChild(this.innerRoot);\n if (fontColor) {\n this.root.style.color = fontColor;\n }\n if (this.currentText) {\n [\"language\", \"id\", \"label\"].map(function(key) {\n _this4.root.setAttribute(\"data-\".concat(key), _this4.currentText[key] || \"\");\n });\n }\n this.player.root.appendChild(this.root);\n addObserver(player.root, this._onResize);\n }\n this.player.on(\"destroy\", this.destroy);\n this.player.on(\"timeupdate\", this._onTimeupdate);\n this.player.on(\"core_event\", this._onCoreEvents);\n if (this._isOpen) {\n this.switch().catch(function(e) {\n _this4._log(\"[switch]\", e);\n });\n }\n }\n }, {\n key: \"detachPlayer\",\n value: function detachPlayer() {\n var player = this.player, config = this.config;\n if (!player) {\n return;\n }\n player.off(\"destroy\", this.destroy);\n player.off(\"timeupdate\", this._onTimeupdate);\n player.on(\"core_event\", this._onCoreEvents);\n if (config.domRender) {\n if (player.root) {\n unObserver(player.root, this._onResize);\n player.root.removeChild(this.root);\n }\n this.innerRoot = null;\n this.root = null;\n }\n this.player = null;\n }\n }, {\n key: \"switch\",\n value: function _switch() {\n var _this5 = this;\n var subtitle = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {\n id: \"\",\n language: \"\"\n };\n this._log(\"switch\", subtitle);\n this._loadingTrack = subtitle;\n return new Promise(function(resolve, reject) {\n if (!subtitle.id && !subtitle.language) {\n if (_this5.currentText) {\n _this5._loadingTrack = {};\n _this5._updateCurrent(_this5.currentText);\n _this5.switchOn();\n var err = _ERROR(0, {\n message: \"switch default subtitle success\"\n });\n resolve(err);\n return;\n } else {\n var _err = _ERROR(5, {\n message: \"no default subtitle\"\n });\n reject(_err);\n return;\n }\n }\n if (_this5.currentText && checkSubtitle(subtitle, _this5.currentText)) {\n _this5._loadingTrack = {};\n _this5._updateCurrent(_this5.currentText);\n _this5.switchOn();\n resolve(_ERROR(0));\n } else {\n var nextSubtitle = null;\n _this5.__removeByTime(_this5._curTexts, 0);\n for (var i = 0; i < _this5.textTrack.length; i++) {\n if (checkSubtitle(subtitle, _this5.textTrack[i])) {\n nextSubtitle = _this5.textTrack[i];\n break;\n }\n }\n _this5._log(\"nextSubtitle\", nextSubtitle);\n if (nextSubtitle) {\n _this5._emitPlayerSwitch(_this5.currentText, nextSubtitle);\n if (nextSubtitle.list) {\n _this5._loadingTrack = {};\n _this5._updateCurrent(nextSubtitle);\n _this5.switchOn();\n resolve(_ERROR(0));\n } else {\n _this5._log(\"this._loadTrack\", nextSubtitle);\n _this5._updateCurrent(nextSubtitle);\n _this5._loadTrack(nextSubtitle).then(function(textTrack) {\n _this5.addStyles(textTrack);\n if (_this5._loadingTrack.id === nextSubtitle.id || _this5._loadingTrack.language === textTrack.language) {\n _this5._loadingTrack = {};\n _this5._updateCurrent(textTrack);\n _this5.switchOn();\n resolve(_ERROR(0));\n } else {\n var _err2 = _ERROR(6, {\n message: \"check _loadingTrack fail id: \".concat(_this5._loadingTrack.id, \" nextSubtitle:\").concat(textTrack.id)\n });\n reject(_err2);\n }\n }).catch(function(err2) {\n reject(err2);\n });\n }\n } else {\n var _err3 = _ERROR(4, new Error(\"The is no subtitle with id:[{\".concat(subtitle.id, \"}] or language:[\").concat(subtitle.language, \"]\")));\n reject(_err3);\n }\n }\n });\n }\n }, {\n key: \"switchExt\",\n value: function switchExt() {\n var _this6 = this;\n var subtitle = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {\n id: \"\",\n language: \"\"\n };\n return new Promise(function(resolve, reject) {\n if (!subtitle.id && !subtitle.language) {\n _this6.currentExtText = null;\n resolve(_ERROR(0));\n } else {\n var nextSubtitle = null;\n for (var i = 0; i < _this6.textTrack.length; i++) {\n if (checkSubtitle(subtitle, _this6.textTrack[i])) {\n nextSubtitle = _this6.textTrack[i];\n break;\n }\n }\n if (nextSubtitle && !checkSubtitle(nextSubtitle, _this6.currentText)) {\n _this6._loadTrack(nextSubtitle).then(function(textTrack) {\n _this6.currentExtText = textTrack;\n resolve(_ERROR(0));\n });\n }\n }\n });\n }\n }, {\n key: \"switchOn\",\n value: function switchOn() {\n this._log(\"switchOn\");\n this._isOpen = true;\n this.show();\n this.emit(EVENTS.CHANGE, this.currentText);\n }\n }, {\n key: \"switchOff\",\n value: function switchOff() {\n this._isOpen = false;\n this.hide();\n this.emit(EVENTS.OFF);\n }\n }, {\n key: \"isOpen\",\n get: function get() {\n return this._isOpen;\n }\n }, {\n key: \"_log\",\n value: function _log() {\n if (this.config.debugger) {\n var _console;\n for (var _len2 = arguments.length, msg = new Array(_len2), _key = 0; _key < _len2; _key++) {\n msg[_key] = arguments[_key];\n }\n (_console = console).log.apply(_console, [\"[xgSubtitle]\"].concat(msg));\n }\n }\n }, {\n key: \"_loadTrack\",\n value: function _loadTrack(textTrack) {\n var _this7 = this;\n this._log(\"_loadTrack\", textTrack.language, textTrack);\n var promise = new ProxyPromise();\n var contentType = \"\";\n var content = \"\";\n if (textTrack.json) {\n contentType = \"json\";\n content = textTrack.json;\n } else if (textTrack.stringContent && !textTrack.url) {\n contentType = \"string\";\n content = textTrack.stringContent;\n }\n if (content) {\n parse(content, contentType).then(function(data) {\n textTrack.format = data.format;\n textTrack.styles = data.styles;\n textTrack.list = data.list;\n promise.resolve(textTrack);\n }).catch(function(e) {\n promise.reject(e);\n });\n return promise;\n }\n var urls = textTrack.url;\n if (urls.length === 0) {\n promise.resolve(textTrack);\n return promise;\n }\n var url = urls.splice(0, 1);\n loadSubTitle(url[0]).then(function(data) {\n textTrack.format = data.format;\n textTrack.styles = data.styles;\n if (!textTrack.list) {\n textTrack.list = [];\n }\n _this7._pushList(textTrack.list, data.list);\n urls.length > 1 && _this7._loadTrackUrls(textTrack, 2);\n promise.resolve(textTrack);\n }).catch(function(e) {\n promise.reject(e);\n });\n return promise;\n }\n }, {\n key: \"_emitPlayerSwitch\",\n value: function _emitPlayerSwitch(curSubtitle, nextSubTitle) {\n if (curSubtitle && this.config.updateMode === \"live\") {\n curSubtitle.list = [];\n curSubtitle.url = [];\n }\n var data = _objectSpread2({\n lang: nextSubTitle.language\n }, nextSubTitle);\n this._log(\"emit subtile_switch \", nextSubTitle, data);\n this.player && this.player.emit(\"switch_subtitle\", data);\n }\n }, {\n key: \"_loadTrackUrls\",\n value: function _loadTrackUrls(textTrack, maxCount, promise) {\n var _this8 = this;\n var len = textTrack.url.length;\n var urls = len > maxCount ? textTrack.url.splice(0, maxCount) : textTrack.url.splice(0, len);\n var loadingCount = urls.length;\n this._log(\"_loadTrackUrls\", textTrack.language, len, urls.length, loadingCount);\n urls.forEach(function(item, i) {\n var obj = _objectSpread2(_objectSpread2({}, item), {}, {\n index: i\n });\n loadSubTitle(obj).then(function(data) {\n textTrack.format = data.format;\n textTrack.styles = data.format;\n if (!textTrack.list) {\n textTrack.list = [];\n }\n _this8._pushList(textTrack.list, data.list);\n loadingCount--;\n }).catch(function(e) {\n loadingCount--;\n }).finally(function(e) {\n if (loadingCount === 0) {\n promise && promise.resolve(textTrack);\n _this8._loadTrackUrls(textTrack, 2);\n }\n });\n });\n }\n }, {\n key: \"_freshUrl\",\n value: function _freshUrl(textTrack) {\n var data = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {\n url: \"\"\n };\n var i = -1;\n textTrack.url.forEach(function(item, index) {\n if (item.url === data.url) {\n i = index;\n }\n });\n if (i > -1) {\n textTrack.url.splice(i, 1);\n }\n }\n }, {\n key: \"_pushList\",\n value: function _pushList(dist, src) {\n var _start = src[0].start;\n var _end = src[src.length - 1].end;\n if (dist.length === 0 || _start >= dist[dist.length - 1].end) {\n src.forEach(function(item) {\n dist.push(item);\n });\n } else {\n var _index = -1;\n for (var i = 0; i < dist.length; i++) {\n if (dist[i].start > _end) {\n _index = i;\n break;\n }\n }\n if (_index > -1) {\n src.forEach(function(item, i2) {\n dist.splice(_index + i2, 0, item);\n });\n }\n }\n return dist;\n }\n }, {\n key: \"_updateCurrent\",\n value: function _updateCurrent(subtitle) {\n var _this9 = this;\n this.currentText = subtitle;\n if (this.config.domRender && this.root) {\n [\"language\", \"id\", \"label\"].map(function(key) {\n _this9.root.setAttribute(\"data-\".concat(key), _this9.currentText[key] || \"\");\n });\n this.__remove(this._cids);\n }\n this._cids = [];\n this._gid = -1;\n this._cid = -1;\n this._curTexts = [];\n var curTime = this._getPlayerCurrentTime();\n curTime && (this.config.updateMode === \"live\" ? this._liveUpdate(curTime) : this._update(curTime));\n }\n }, {\n key: \"__loadAll\",\n value: function __loadAll() {\n var _this10 = this;\n this.textTrack.forEach(function(item) {\n _this10._loadTrack(item);\n });\n }\n }, {\n key: \"getDelCid\",\n value: function getDelCid(oldArr, newArr) {\n var ret = [];\n for (var i = 0; i < oldArr.length; i++) {\n if (!newArr.includes(oldArr[i])) {\n ret.push(oldArr[i]);\n }\n }\n return ret;\n }\n }, {\n key: \"getNewCid\",\n value: function getNewCid(oldArr, newArr) {\n var ret = [];\n for (var i = 0; i < newArr.length; i++) {\n if (!oldArr.includes(newArr[i])) {\n ret.push(newArr[i]);\n }\n }\n return ret;\n }\n }, {\n key: \"_liveUpdate\",\n value: function _liveUpdate(currentTime) {\n var _this11 = this;\n if (!this.currentText || !this.currentText.list || !this.currentText.list.length) {\n return;\n }\n var _cids = [];\n var _gid = findIndexByTime(currentTime, this.currentText.list, this._gid);\n if (_gid > -1) {\n _cids = findCIndexByTime(currentTime, this.currentText.list[_gid].list, this._cid);\n }\n this.__removeByTime(this._curTexts, currentTime);\n this._log(\"_liveUpdate\", currentTime, _gid, _cids, this.currentText.list[0].list[0].start, this.currentText.list[0].list[0].end);\n if (_cids.length > 0) {\n var ret = getItemsByIndex(this.currentText.list, _gid, _cids);\n var _len = this._curTexts.length;\n var _si = _len > 0 ? this._curTexts[_len - 1].index : 0;\n ret.forEach(function(item, i) {\n item.index = i + _si;\n _this11._curTexts.push(item);\n });\n this.__render(ret);\n }\n this.emit(\"update\", this._curTexts);\n }\n }, {\n key: \"_update\",\n value: function _update(currentTime) {\n var _this12 = this;\n if (!this.currentText || !this.currentText.list || !this.currentText.list.length) {\n return;\n }\n var _gid = findIndexByTime(currentTime, this.currentText.list, this._gid);\n var _cids = [];\n if (_gid > -1) {\n _cids = findCIndexByTime(currentTime, this.currentText.list[_gid].list, this._cid);\n }\n if (_cids.length < 1) {\n this._cids.length > 0 && this.config.domRender && this.__remove(this._cids);\n this._cids = [];\n return;\n }\n if (this._cids === _cids && _gid === this._gid) {\n return;\n }\n this._gid = _gid;\n this._cid = _cids[0];\n var delCids = this.getDelCid(this._cids, _cids);\n var newCids = this.getNewCid(this._cids, _cids);\n this._cids = _cids;\n this.config.domRender && this.__remove(delCids);\n var texts = [];\n newCids.map(function(item) {\n var text = _this12.currentText.list[_gid].list[item];\n text.index = item;\n texts.push(text);\n });\n if (this.currentExtText) {\n newCids.map(function(item) {\n var textExt = _this12.currentText.list[_gid].list[item];\n textExt.index = item;\n texts.push(textExt);\n });\n }\n this.emit(\"update\", texts);\n this.__render(texts, currentTime);\n }\n }, {\n key: \"_getPlayerCurrentTime\",\n value: function _getPlayerCurrentTime() {\n if (!this.player) {\n return 0;\n }\n var currentTime = this.player.currentTime;\n var curTime = parseInt(currentTime * 1e3 + this.seiTime * 1e3 - this.lastSeiTime * 1e3, 10) / 1e3;\n return curTime;\n }\n }, {\n key: \"_onSubtitlePlaylist\",\n value: function _onSubtitlePlaylist(subtitleList) {\n this._log(\"_onSubtitlePlaylist\", subtitleList);\n var list = subtitleList.map(function(item) {\n return {\n label: item.name,\n language: item.lang,\n id: item.id,\n isDefault: item.default,\n url: [],\n mUrl: item.url\n };\n });\n this.setSubTitles(list);\n }\n }, {\n key: \"_onSubtitleSegment\",\n value: function _onSubtitleSegment(urlList) {\n this._log(\"_onSubtitleSegment\", urlList.length, urlList[0].lang, urlList[0].sn, urlList[urlList.length - 1].sn, urlList[0].start, urlList[urlList.length - 1].end);\n if (!urlList || urlList.length === 0) {\n return;\n }\n var lang = urlList[0].lang;\n var urls = urlList.map(function(item) {\n return {\n id: item.sn,\n url: item.url,\n duration: item.duration,\n start: item.start,\n end: item.end\n };\n });\n var _sub = {\n language: lang,\n url: urls\n };\n if (!checkSubtitle(_sub, this.currentText)) {\n return;\n }\n this.updateSubTitle(_sub);\n }\n }, {\n key: \"_onCoreSeiintime\",\n value: function _onCoreSeiintime(e) {\n try {\n var sei = e.time / 1e3;\n this._log(\"_onCoreSeiintime sei\", sei, this.seiTime, this.lastSeiTime);\n this.seiTime = sei;\n this.lastSeiTime = this.player ? this.player.currentTime : 0;\n } catch (e2) {\n }\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n var _this13 = this;\n var _this$config2 = this.config, baseSizeX = _this$config2.baseSizeX, baseSizeY = _this$config2.baseSizeY, minMobileSize = _this$config2.minMobileSize, minSize = _this$config2.minSize, fitVideo = _this$config2.fitVideo, offsetBottom = _this$config2.offsetBottom;\n var scale = this._videoMeta.scale;\n this._videoMeta.lwidth = width;\n this._videoMeta.lheight = height;\n var vWidth;\n var vHeight = 0;\n if (height / width * 100 >= scale) {\n vHeight = parseInt(scale * width, 10) / 100;\n vWidth = width;\n } else {\n vHeight = height;\n vWidth = parseInt(height / scale * 100, 10);\n }\n this._videoMeta.vWidth = vWidth;\n this._videoMeta.vHeight = vHeight;\n var _size = 0;\n var fontSize = 0;\n if (scale > 120) {\n _size = baseSizeY;\n fontSize = parseInt(_size * vHeight / 1080, 10);\n } else {\n _size = baseSizeX;\n fontSize = parseInt(_size * vWidth / 1920, 10);\n }\n var mini = IS_MOBILE ? minMobileSize : minSize;\n fontSize = fontSize < mini ? mini : fontSize > _size ? _size : fontSize;\n var style = {\n fontSize\n };\n var vBottom = parseInt((height - vHeight) / 2, 10);\n var vLeft = parseInt((width - vWidth) / 2, 10);\n var marginBottom = parseInt(vHeight * offsetBottom, 10) / 100;\n this._videoMeta.vBottom = vBottom;\n this._videoMeta.vLeft = vLeft;\n this._videoMeta.marginBottom = marginBottom;\n if (fitVideo) {\n style.bottom = vBottom + marginBottom;\n style.left = style.right = vLeft;\n }\n Object.keys(style).map(function(item) {\n _this13.root.style[item] = \"\".concat(style[item], \"px\");\n });\n this.emit(EVENTS.RESIZE, {\n vLeft,\n vBottom,\n marginBottom,\n vWidth,\n vHeight,\n fontSize,\n scale\n });\n }\n }, {\n key: \"__startResize\",\n value: function __startResize(target) {\n var _this14 = this;\n var rect = target.getBoundingClientRect();\n var _videoMeta = this._videoMeta;\n var width = rect.width, height = rect.height;\n if (this._iId) {\n clearTimeout(this._iId);\n this._iId = null;\n }\n if (width > 0 && height > 0 && (width !== _videoMeta.lwidth || height !== _videoMeta.lheight)) {\n this._iC = 0;\n this.resize(width, height);\n } else {\n if (this._iC >= 5) {\n this._iC = 0;\n return;\n }\n this._iC++;\n this._iId = setTimeout(function() {\n _this14.__startResize(target);\n }, 50);\n }\n }\n }, {\n key: \"__removeByTime\",\n value: function __removeByTime(list, time) {\n var ids = [];\n for (var i = 0; i < list.length; i++) {\n if (!time || list[i].end < time) {\n ids.push(i);\n }\n }\n if (ids.length === 0) {\n return;\n }\n list.splice(ids[0], ids.length);\n this.config.domRender && this.__remove(ids);\n }\n }, {\n key: \"__remove\",\n value: function __remove(ids) {\n var _this15 = this;\n if (!ids || ids.length < 1) {\n return;\n }\n var children = this.innerRoot.children;\n var removeIndex = [];\n for (var i = 0; i < children.length; i++) {\n var index = Number(children[i].getAttribute(\"data-index\"));\n if (ids.includes(index)) {\n removeIndex.push(children[i]);\n }\n }\n removeIndex.map(function(item) {\n _this15.innerRoot.removeChild(item);\n });\n }\n }, {\n key: \"__render\",\n value: function __render() {\n var _this16 = this;\n var jsonItems = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];\n this._log(\"__render\", jsonItems.length, this.config.domRender);\n if (jsonItems.length > 0 && this.config.domRender) {\n jsonItems.map(function(jsonItem) {\n var className = \"text-track-\".concat(_this16.config.line);\n jsonItem.text.map(function(item, index) {\n if (index > 0) {\n className += \" text-track-deputy\";\n }\n var attr = {\n \"data-start\": jsonItem.start,\n \"data-end\": jsonItem.end,\n \"data-index\": jsonItem.index\n };\n _this16.innerRoot.appendChild(createDom(\"xg-text-track-span\", item, attr, className));\n });\n });\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n if (!this.config.domRender) {\n return;\n }\n removeClass(this.root, \"text-track-hide\");\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (!this.config.domRender) {\n return;\n }\n addClass(this.root, \"text-track-hide\");\n this.innerRoot.innerHTML = \"\";\n }\n }, {\n key: \"emit\",\n value: function emit(event, data) {\n var _get2;\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key2 = 2; _key2 < _len3; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n (_get2 = _get(_getPrototypeOf(Subtitle2.prototype), \"emit\", this)).call.apply(_get2, [this, event, data].concat(args));\n }\n }, {\n key: \"on\",\n value: function on(event, callback) {\n var _get3;\n for (var _len4 = arguments.length, args = new Array(_len4 > 2 ? _len4 - 2 : 0), _key3 = 2; _key3 < _len4; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n (_get3 = _get(_getPrototypeOf(Subtitle2.prototype), \"on\", this)).call.apply(_get3, [this, event, callback].concat(args));\n }\n }, {\n key: \"once\",\n value: function once(event, callback) {\n var _get4;\n for (var _len5 = arguments.length, args = new Array(_len5 > 2 ? _len5 - 2 : 0), _key4 = 2; _key4 < _len5; _key4++) {\n args[_key4 - 2] = arguments[_key4];\n }\n (_get4 = _get(_getPrototypeOf(Subtitle2.prototype), \"once\", this)).call.apply(_get4, [this, event, callback].concat(args));\n }\n }, {\n key: \"off\",\n value: function off(event, callback) {\n var _get5;\n for (var _len6 = arguments.length, args = new Array(_len6 > 2 ? _len6 - 2 : 0), _key5 = 2; _key5 < _len6; _key5++) {\n args[_key5 - 2] = arguments[_key5];\n }\n (_get5 = _get(_getPrototypeOf(Subtitle2.prototype), \"off\", this)).call.apply(_get5, [this, event, callback].concat(args));\n }\n }, {\n key: \"offAll\",\n value: function offAll() {\n _get(_getPrototypeOf(Subtitle2.prototype), \"removeAllListeners\", this).call(this);\n }\n }, {\n key: \"marginBottom\",\n get: function get() {\n var _this$_videoMeta = this._videoMeta, bottom = _this$_videoMeta.bottom, marginBottom = _this$_videoMeta.marginBottom;\n return this.config.fitVideo ? bottom + marginBottom : marginBottom;\n }\n }]);\n return Subtitle2;\n}(EventEmitter);\nexport { Subtitle as default };\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import { typeof as _typeof, objectSpread2 as _objectSpread2 } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nimport SubTitleParser from \"./parser.js\";\nimport { _ERROR } from \"./error.js\";\nimport XHR from \"./xhr.js\";\nimport ProxyPromise from \"./proxyPromise.js\";\nfunction hasClass(el, className) {\n if (!el) {\n return false;\n }\n if (el.classList) {\n return Array.prototype.some.call(el.classList, function(item) {\n return item === className;\n });\n } else {\n var orgClassName = el.className && _typeof(el.className) === \"object\" ? el.getAttribute(\"class\") : el.className;\n return orgClassName && !!orgClassName.match(new RegExp(\"(\\\\s|^)\" + className + \"(\\\\s|$)\"));\n }\n}\nfunction addClass(el, className) {\n if (!el) {\n return;\n }\n if (el.classList) {\n className.replace(/(^\\s+|\\s+$)/g, \"\").split(/\\s+/g).forEach(function(item) {\n item && el.classList.add(item);\n });\n } else if (!hasClass(el, className)) {\n if (el.className && _typeof(el.className) === \"object\") {\n el.setAttribute(\"class\", el.getAttribute(\"class\") + \" \" + className);\n } else {\n el.className += \" \" + className;\n }\n }\n}\nfunction removeClass(el, className) {\n if (!el) {\n return;\n }\n if (el.classList) {\n className.split(/\\s+/g).forEach(function(item) {\n el.classList.remove(item);\n });\n } else if (hasClass(el, className)) {\n className.split(/\\s+/g).forEach(function(item) {\n var reg = new RegExp(\"(\\\\s|^)\" + item + \"(\\\\s|$)\");\n if (el.className && _typeof(el.className) === \"object\") {\n el.setAttribute(\"class\", el.getAttribute(\"class\").replace(reg, \" \"));\n } else {\n el.className = el.className.replace(reg, \" \");\n }\n });\n }\n}\nfunction findIndexByTime(currentTime, list, index) {\n var len = list.length;\n if (len < 1) {\n return -1;\n }\n index = index < 0 ? 0 : index >= len ? len - 1 : index;\n if (list[index].start <= currentTime && currentTime < list[index].end) {\n return index;\n } else {\n var i = list[index].end <= currentTime ? index + 1 : 0;\n for (; i < len; i++) {\n if (list[i].start <= currentTime && currentTime < list[i].end) {\n return i;\n } else if (currentTime > list[i].end && i + 1 < len && currentTime < list[i + 1].start) {\n return -1;\n } else if (currentTime > list[i].end && i + 1 >= len) {\n return -1;\n }\n }\n return -1;\n }\n}\nfunction findCIndexByTime(currentTime, list, index) {\n var len = list.length;\n if (len < 1) {\n return [];\n }\n index = index < 0 ? 0 : index >= len ? len - 1 : index;\n var ids = [];\n if (index < len) {\n var i = list[index].end <= currentTime ? index : 0;\n for (; i < len; i++) {\n if (list[i].start <= currentTime && currentTime < list[i].end) {\n ids.push(i);\n }\n if (currentTime < list[i].start) {\n break;\n }\n }\n }\n return ids;\n}\nfunction getItemsByIndex(list, gid, cids) {\n if (list.length === 0 || gid < 0 || gid > list.length - 1) {\n return [];\n }\n var gList = list[gid].list;\n if (cids.length === 0) {\n return [];\n }\n var ret = gList.splice(cids[0], cids.length);\n if (gid > 0) {\n list.splice(0, gid);\n }\n if (gList.length === 0) {\n list.splice(0, 1);\n }\n return ret;\n}\nfunction typeOf(obj) {\n return Object.prototype.toString.call(obj).match(/([^\\s.*]+)(?=]$)/g)[0];\n}\nfunction createDom() {\n var el = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"div\";\n var tpl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\";\n var attrs = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var cname = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : \"\";\n var dom = document.createElement(el);\n dom.className = cname;\n dom.innerHTML = tpl;\n Object.keys(attrs).forEach(function(item) {\n var key = item;\n var value = attrs[item];\n if (el === \"video\" || el === \"audio\" || el === \"live-video\") {\n if (value) {\n dom.setAttribute(key, value);\n }\n } else {\n dom.setAttribute(key, value);\n }\n });\n return dom;\n}\nfunction isMobile() {\n var ua = navigator.userAgent;\n var isWindowsPhone = /(?:Windows Phone)/.test(ua);\n var isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone;\n var isAndroid = /(?:Android)/.test(ua);\n var isFireFox = /(?:Firefox)/.test(ua);\n var isTablet = /(?:iPad|PlayBook)/.test(ua) || isAndroid && !/(?:Mobile)/.test(ua) || isFireFox && /(?:Tablet)/.test(ua);\n var isPhone = /(?:iPhone)/.test(ua) && !isTablet;\n return isPhone || isAndroid || isSymbian || isTablet;\n}\nfunction addCSS(styles) {\n var preTag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\";\n var cssText = \"\";\n styles.map(function(item) {\n cssText += \" \".concat(preTag, \" \").concat(item.key, \" {\").concat(item.style, \"}\");\n });\n var styleTag = document.createElement(\"style\");\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n styleTag.type = \"text/css\";\n styleTag.id = \"ssss\";\n if (styleTag.styleSheet) {\n var func = function func2() {\n try {\n styleTag.styleSheet.cssText = cssText;\n } catch (e) {\n }\n };\n if (styleTag.styleSheet.disabled) {\n setTimeout(func, 10);\n } else {\n func();\n }\n } else {\n var textNode = document.createTextNode(cssText);\n styleTag.appendChild(textNode);\n }\n head.appendChild(styleTag);\n}\nfunction parse(content, format, promise) {\n if (!promise) {\n promise = new ProxyPromise();\n }\n if (format === \"json\") {\n var list = SubTitleParser.parseJson(content);\n promise.resolve({\n list,\n format: \"json\"\n });\n } else if (format === \"string\") {\n SubTitleParser.parse(content, function(data, error) {\n if (error) {\n var err = _ERROR(2, error);\n promise.reject(err, {\n format: data.format\n });\n } else if (!data.format) {\n var _err3 = _ERROR(3);\n promise.reject(_err3);\n } else {\n promise.resolve({\n styles: data.styles,\n list: data.list,\n format: data.format\n });\n }\n });\n }\n return promise;\n}\nfunction loadSubTitle(object, promise) {\n if (!promise) {\n promise = new ProxyPromise();\n }\n new XHR({\n url: object.url,\n type: \"text\"\n }).then(function(data) {\n parse(data.res.response, \"string\").then(function(data2) {\n promise.resolve(_objectSpread2(_objectSpread2({}, data2), object));\n }).catch(function(e) {\n promise.reject(e);\n });\n }).catch(function(err) {\n var _err = _ERROR(1, _objectSpread2({\n statusText: err.statusText,\n status: err.status,\n type: err.type,\n message: \"http load error\",\n url: object.src\n }, object));\n promise.reject(_err);\n });\n return promise;\n}\nfunction checkSubtitle(src, dist) {\n if (src.id && dist.id && src.id === dist.id || src.language && dist.language && src.language === dist.language) {\n return true;\n }\n return false;\n}\nexport { addCSS, addClass, checkSubtitle, createDom, findCIndexByTime, findIndexByTime, getItemsByIndex, hasClass, isMobile, loadSubTitle, parse, removeClass, typeOf };\n","import { createClass as _createClass, classCallCheck as _classCallCheck } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nvar VTT_CHECK = /^WEBVTT/;\nvar VTT_STYLE = /^STYLE+$/;\nvar VTT_CUE = /^\\:\\:cue/;\nvar VTT_CUEND = /^}+$/;\nvar ASS_CHECK = /^\\[Script Info\\].*/;\nvar TIME_REGEX_LIST = [/[0-9]{1,3}:[0-9]{2}:[0-9]{2}\\.[0-9]{1,3}-->[0-9]{1,3}:[0-9]{2}:[0-9]{2}\\.[0-9]{1,3}/, /[0-9]{1,2}:[0-9]{2}\\.[0-9]{1,3}-->[0-9]{1,2}:[0-9]{2}\\.[0-9]{1,3}/, /[0-9]{1,2}\\.[0-9]{1,3}-->[0-9]{1,2}\\.[0-9]{1,3}/];\nvar MAX_COUNT = 50;\nvar ASS_FORMAT = /^Format:\\s/;\nvar ASS_STYLE = /^Style:\\s/;\nvar ASS_DIALOGUE = /^Dialogue:\\s/;\nfunction getSecond(arr) {\n var len = arr.length;\n if (len === 3) {\n return ((Number(arr[0]) * 60 + Number(arr[1])) * 60 * 1e3 + Number(arr[2]) * 1e3) / 1e3;\n } else if (len === 2) {\n return (Number(arr[0]) * 60 * 1e3 + Number(arr[1]) * 1e3) / 1e3;\n } else {\n return Number(arr[0]);\n }\n}\nfunction isNumber(str) {\n return /^(\\-|\\+)?\\d+(\\.\\d+)?$/.test(str);\n}\nfunction htmlEncodeAll(e) {\n return e;\n}\nfunction getByIndex(i, arr) {\n if (i >= 0 && i < arr.length) {\n return arr[i];\n }\n return \"\";\n}\nvar SubTitleParser = /* @__PURE__ */ function() {\n function SubTitleParser2() {\n _classCallCheck(this, SubTitleParser2);\n }\n _createClass(SubTitleParser2, null, [{\n key: \"parseJson\",\n value: function parseJson(list) {\n var ret = [];\n var count = 0;\n for (var i = 0; i < list.length; i++) {\n if (count >= MAX_COUNT) {\n count = 0;\n }\n if (count === 0) {\n var item = {\n start: list[i].start,\n list: [list[i]],\n end: list[i].end\n };\n ret.push(item);\n } else {\n ret[ret.length - 1].list.push(list[i]);\n ret[ret.length - 1].end = list[i].end;\n }\n count++;\n }\n return ret;\n }\n }, {\n key: \"parse\",\n value: function parse(str, fun) {\n var format = SubTitleParser2.checkFormat(str);\n if (!format) {\n fun({\n format\n });\n }\n try {\n var ret = [];\n if (format === \"ass\") {\n ret = SubTitleParser2.parseASS(str);\n } else if (format === \"vtt\") {\n ret = SubTitleParser2.parseVTT(str);\n }\n fun({\n format,\n list: ret.list,\n styles: ret.styles\n });\n } catch (error) {\n console.error(error);\n fun({\n format\n }, error);\n }\n }\n }, {\n key: \"parseASSItem\",\n value: function parseASSItem() {\n var str = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"\";\n var mode = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];\n var values = str.split(\",\");\n var item = {};\n var text = \"\";\n try {\n var len = values.length - mode.length;\n if (len > 0) {\n text = values.splice(mode.length - 1, len + 1).join(\",\") + \"\";\n } else {\n text = values[values.length - 1] + \"\";\n }\n text = text.replace(/\\\\n+/g, \"\");\n text = htmlEncodeAll(text);\n values[mode.length - 1] = text;\n mode.map(function(key, index) {\n if (key === \"end\" || key === \"start\") {\n item[key] = getSecond(values[index].split(\":\"));\n } else if (key === \"text\") {\n item[key] = [values[index]];\n } else if (key === \"layer\") {\n item[key] = [values[index]];\n item.textTag = [values[index]];\n } else if (key === \"style\") {\n item[key] = [values[index]];\n } else {\n item[key] = Number(values[index]) ? Number(values[index]) : values[index];\n }\n });\n return item;\n } catch (error) {\n console.error(error);\n return {};\n }\n }\n }, {\n key: \"parseASS\",\n value: function parseASS(str) {\n var arr = str.split(\"\\n\");\n var retData = [];\n var i = 0;\n var groupCount = 0;\n var styles = [];\n var mode = [];\n var lastSubTitle = null;\n while (i < arr.length) {\n if (ASS_FORMAT.test(arr[i])) {\n mode = arr[i].replace(ASS_FORMAT, \"\").replace(/\\s+/g, \"\").split(\",\");\n mode = mode.map(function(item) {\n return item.toLocaleLowerCase();\n });\n } else if (ASS_STYLE.test(arr[i])) {\n styles.push(arr[i].replace(ASS_STYLE, \"\").replace(/\\s+/g, \"\"));\n } else if (ASS_DIALOGUE.test(arr[i])) {\n var subTitle = SubTitleParser2.parseASSItem(arr[i].replace(ASS_DIALOGUE, \"\"), mode);\n if (!lastSubTitle || !(subTitle.start === lastSubTitle.start && subTitle.end === lastSubTitle.end)) {\n lastSubTitle = subTitle;\n var group = null;\n if (groupCount % MAX_COUNT === 0) {\n group = {\n start: lastSubTitle.start,\n end: lastSubTitle.end,\n list: []\n };\n group.list.push(lastSubTitle);\n retData.push(group);\n } else {\n group = retData[retData.length - 1];\n group.end = lastSubTitle.end;\n group.list.push(lastSubTitle);\n }\n groupCount++;\n } else {\n try {\n var _lastSubTitle = lastSubTitle, text = _lastSubTitle.text, textTag = _lastSubTitle.textTag, style = _lastSubTitle.style;\n text.push(subTitle.text[0]);\n textTag.push(subTitle.textTag[0]);\n style.push(subTitle.style[0]);\n } catch (error) {\n console.error(error);\n }\n }\n }\n i++;\n }\n return {\n list: retData,\n style: {}\n };\n }\n }, {\n key: \"parseVTTStyle\",\n value: function parseVTTStyle(str, style) {\n var arr = str.split(\":\");\n if (arr.length > 1) {\n var keyArr = arr[0].trim().split(\"-\");\n var key = \"\";\n if (keyArr.length > 1) {\n keyArr.map(function(item, index) {\n key += index === 0 ? item : item.charAt(0).toUpperCase() + item.slice(1);\n });\n } else {\n key = keyArr[0];\n }\n style[key] = arr[1].trim().replace(/;$/, \"\");\n }\n return style;\n }\n }, {\n key: \"parseVTT\",\n value: function parseVTT(str) {\n str = str.replace(VTT_CHECK, \"\");\n var arr = str.split(\"\\n\");\n var retData = [];\n var i = 0;\n var groupCount = 0;\n var lastSubTitle = null;\n var isLastSpace = false;\n var isCueStart = false;\n var styleInfo = null;\n var styleHeader = null;\n var styles = [];\n while (i < arr.length) {\n var _str = getByIndex(i, arr).trim();\n if (!_str || isLastSpace && isNumber(_str)) {\n isLastSpace = !_str;\n } else if (VTT_CUE.test(_str) && VTT_STYLE.test(getByIndex(i - 1, arr).trim())) {\n isCueStart = true;\n var cueMatch = /\\((.+?)\\)/g.exec(_str);\n if (!cueMatch) {\n styleHeader = \"\";\n } else {\n styleHeader = cueMatch[1];\n }\n styleInfo = \"\";\n } else if (isCueStart) {\n if (VTT_CUEND.test(_str)) {\n styles.push({\n key: styleHeader,\n style: styleInfo\n });\n styleInfo = null;\n styleHeader = null;\n isCueStart = false;\n } else {\n styleInfo += _str;\n }\n } else if (_str) {\n isLastSpace = false;\n var time = this.checkIsTime(arr[i]);\n if (time) {\n var subTitle = this.parseVttTime(time);\n if (!lastSubTitle || !(subTitle.start === lastSubTitle.start && subTitle.end === lastSubTitle.end)) {\n lastSubTitle = subTitle;\n lastSubTitle.text = [];\n lastSubTitle.textTag = [];\n var group = null;\n if (groupCount % MAX_COUNT === 0) {\n group = {\n start: lastSubTitle.start,\n end: lastSubTitle.end,\n list: []\n };\n group.list.push(lastSubTitle);\n retData.push(group);\n } else {\n group = retData[retData.length - 1];\n group.end = lastSubTitle.end;\n group.list.push(lastSubTitle);\n }\n groupCount++;\n }\n } else {\n if (lastSubTitle) {\n var _lastSubTitle2 = lastSubTitle, text = _lastSubTitle2.text, textTag = _lastSubTitle2.textTag;\n var ret = this.parseVttText(arr[i]);\n text.push(ret.text);\n textTag.push(ret.tag);\n }\n }\n isLastSpace = false;\n }\n i++;\n continue;\n }\n return {\n list: retData,\n styles\n };\n }\n }, {\n key: \"checkIsTime\",\n value: function checkIsTime(str) {\n str = str.replace(/\\s+/g, \"\");\n var i = 0;\n var match = null;\n while (i < TIME_REGEX_LIST.length) {\n match = TIME_REGEX_LIST[i].exec(str);\n if (match) {\n break;\n }\n i++;\n }\n return match ? match[0] : null;\n }\n }, {\n key: \"parseVttText\",\n value: function parseVttText(text) {\n var langMatch = /^(<?.+?>)/g.exec(text);\n var retText = \"\";\n var tag = \"default\";\n if (langMatch) {\n tag = langMatch[0].replace(/\\<|\\>|\\&/g, \"\");\n var newReg = RegExp(\"^<\".concat(tag, \">(([\\\\s\\\\S])*?)</\").concat(tag, \">$\"));\n var textMatch = newReg.exec(text);\n if (textMatch) {\n retText = textMatch[1];\n } else {\n retText = text;\n tag = \"\";\n }\n } else {\n retText = text;\n }\n var tagsReg = /<(\\w+).(\\w+)>/g;\n var re = tagsReg.exec(retText);\n while (re && re.length > 2) {\n retText = retText.replace(re[0], \"<\".concat(re[1], ' class=\"').concat(re[2], '\">'));\n re = tagsReg.exec(retText);\n }\n return {\n tag,\n text: htmlEncodeAll(retText.replace(/\\\\n+/g, \"<br/>\"))\n };\n }\n }, {\n key: \"parseVttTime\",\n value: function parseVttTime(str) {\n var arr = str.split(\"-->\");\n var start;\n var end = 0;\n if (arr.length === 2) {\n var aArr = arr[0].split(\":\");\n var bArr = arr[1].split(\":\");\n start = getSecond(aArr);\n end = getSecond(bArr);\n }\n return {\n start,\n end,\n time: str\n };\n }\n }, {\n key: \"isVTT\",\n value: function isVTT(str) {\n return VTT_CHECK.test(str);\n }\n }, {\n key: \"isASS\",\n value: function isASS(str) {\n return ASS_CHECK.test(str);\n }\n }, {\n key: \"checkFormat\",\n value: function checkFormat(str) {\n if (!str) {\n return null;\n }\n if (VTT_CHECK.test(str)) {\n return \"vtt\";\n } else if (ASS_CHECK.test(str)) {\n return \"ass\";\n }\n return null;\n }\n }]);\n return SubTitleParser2;\n}();\nexport { SubTitleParser as default };\n","import { createClass as _createClass, classCallCheck as _classCallCheck } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nvar XHR = /* @__PURE__ */ _createClass(function XHR2() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, url = _ref.url, _ref$method = _ref.method, method = _ref$method === void 0 ? \"GET\" : _ref$method, _ref$type = _ref.type, type = _ref$type === void 0 ? \"arraybuffer\" : _ref$type, _ref$timeout = _ref.timeout, timeout = _ref$timeout === void 0 ? 1e4 : _ref$timeout, _ref$data = _ref.data, data = _ref$data === void 0 ? {} : _ref$data;\n var context = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n _classCallCheck(this, XHR2);\n return new Promise(function(resolve, reject) {\n var R = new window.XMLHttpRequest();\n var _method = method.toUpperCase();\n var _data = [];\n if (type) {\n R.responseType = type;\n }\n if (timeout) {\n R.timeout = timeout;\n }\n Object.keys(data).forEach(function(k) {\n _data.push(\"k=\".concat(data[k]));\n });\n R.onload = function() {\n if (R.status === 200 || R.status === 206) {\n resolve({\n context,\n res: R\n });\n } else {\n reject(new Error({\n context,\n res: R,\n type: \"error\"\n }));\n }\n };\n R.onerror = function(e) {\n reject(new Error({\n context,\n res: R,\n type: \"error\"\n }));\n };\n R.ontimeout = function(e) {\n reject(new Error({\n context,\n res: R,\n type: \"error\"\n }));\n };\n R.onabort = function() {\n reject(new Error({\n context,\n res: R,\n type: \"error\"\n }));\n };\n if (_method === \"GET\") {\n R.open(_method, \"\".concat(url));\n R.send();\n } else if (_method === \"post\") {\n R.open(_method, url);\n R.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n R.send(_data.join(\"&\"));\n } else {\n throw new Error(\"xhr \".concat(_method, \" is not supported\"));\n }\n });\n});\nexport { XHR as default };\n","import { createClass as _createClass, classCallCheck as _classCallCheck } from \"./_virtual/_rollupPluginBabelHelpers.js\";\nvar ResizeObserver = /* @__PURE__ */ function() {\n function ResizeObserver2() {\n var _this = this;\n _classCallCheck(this, ResizeObserver2);\n this.__handlers = [];\n if (!window.ResizeObserver) {\n return;\n }\n this.observer = new window.ResizeObserver(function(entries) {\n _this.__trigger(entries);\n });\n }\n _createClass(ResizeObserver2, [{\n key: \"addObserver\",\n value: function addObserver2(target, handler) {\n if (!this.observer) {\n return;\n }\n this.observer && this.observer.observe(target);\n var __handlers = this.__handlers;\n var index = -1;\n for (var i = 0; i < __handlers.length; i++) {\n if (__handlers[i] && target === __handlers[i].target) {\n index = i;\n }\n }\n if (index > -1) {\n this.__handlers[index].handler.push(handler);\n } else {\n this.__handlers.push({\n target,\n handler: [handler]\n });\n }\n }\n }, {\n key: \"unObserver\",\n value: function unObserver2(target) {\n var i = -1;\n this.__handlers.map(function(item, index) {\n if (target === item.target) {\n i = index;\n }\n });\n this.observer && this.observer.unobserve(target);\n i > -1 && this.__handlers.splice(i, 1);\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n this.observer && this.observer.disconnect();\n this.observer = null;\n this.__handlers = null;\n }\n }, {\n key: \"__runHandler\",\n value: function __runHandler(target, cr) {\n var __handlers = this.__handlers;\n for (var i = 0; i < __handlers.length; i++) {\n if (__handlers[i] && target === __handlers[i].target) {\n __handlers[i].handler && __handlers[i].handler.forEach(function(handler) {\n try {\n handler(target, cr);\n } catch (error) {\n console.error(error);\n }\n });\n break;\n }\n }\n }\n }, {\n key: \"__trigger\",\n value: function __trigger(entries) {\n var _this2 = this;\n entries.map(function(item) {\n var cr = item.contentRect;\n _this2.__runHandler(item.target, cr);\n });\n }\n }]);\n return ResizeObserver2;\n}();\nvar resizeObserver = null;\nfunction addObserver(target, handler) {\n if (!resizeObserver) {\n resizeObserver = new ResizeObserver();\n }\n resizeObserver.addObserver(target, handler);\n}\nfunction unObserver(target, handler) {\n if (!resizeObserver) {\n return;\n }\n resizeObserver.unObserver(target, handler);\n}\nexport { addObserver, unObserver };\n","var EVENTS = {\n RESIZE: \"resize\",\n CHANGE: \"change\",\n OFF: \"off\",\n UPDATE: \"update\"\n};\nexport { EVENTS };\n","import Player from '../player'\n\nimport I18n from './controls/i18n.js'\nimport Enter from './controls/enter.js'\nimport Play from './controls/play.js'\nimport Start from './controls/start.js'\nimport Poster from './controls/poster.js'\nimport Flex from './controls/flex.js'\nimport Fullscreen from './controls/fullscreen.js'\nimport CssFullscreen from './controls/cssFullscreen.js'\nimport Volume from './controls/volume.js'\nimport Definition from './controls/definition.js'\nimport Loading from './controls/loading.js'\nimport Progress from './controls/progress.js'\nimport Time from './controls/time.js'\nimport Replay from './controls/replay.js'\nimport PlaybackRate from './controls/playbackRate.js'\nimport LocalPreview from './controls/localPreview.js'\nimport Download from './controls/download.js'\nimport Danmu from './controls/danmu.js'\nimport Pip from './controls/pip.js'\nimport Miniplayer from './controls/miniplayer.js'\nimport PlayNext from './controls/playNext.js'\nimport Rotate from './controls/rotate.js'\nimport Reload from './controls/reload.js'\nimport ScreenShot from './controls/screenShot.js'\nimport NativeTextTrack from './controls/nativeTextTrack.js'\nimport TextTrack from './controls/textTrack.js'\nimport ErrorControl from './controls/error.js'\nimport MemoryPlay from './controls/memoryPlay.js'\nimport Airplay from './controls/airplay.js'\n\nPlayer.installAll([\n I18n,\n Enter,\n Play,\n Start,\n Poster,\n Flex,\n Fullscreen,\n CssFullscreen,\n Volume,\n Definition,\n Loading,\n Progress,\n Time,\n Replay,\n PlaybackRate,\n LocalPreview,\n Download,\n Danmu,\n Pip,\n Miniplayer,\n PlayNext,\n Rotate,\n Reload,\n ScreenShot,\n NativeTextTrack,\n TextTrack,\n ErrorControl,\n MemoryPlay,\n Airplay\n])","import { createDom } from '../../utils/util'\nimport '../style/controls/enter.scss'\n\nlet s_enter = function () {\n let player = this\n let root = player.root\n\n let barStr = ''\n for(let i = 1; i <= 12; i++) {\n barStr += `<div class=\"xgplayer-enter-bar${i}\"></div>`\n }\n let enter = createDom('xg-enter', `<div class=\"xgplayer-enter-spinner\">\n ${barStr}\n </div>`, {}, 'xgplayer-enter');\n root.appendChild(enter)\n}\n\nexport default {\n name: 's_enter',\n method: s_enter\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./enter.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./enter.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./enter.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000;z-index:120}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner{display:block;position:absolute;left:50%;top:50%;height:100px;width:100px;position:relative;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div{width:12%;height:26%;background-color:hsla(0,0%,100%,.7);position:absolute;left:44%;top:37%;opacity:0;border-radius:30px;-webkit-animation:fade 1s linear infinite;animation:fade 1s linear infinite}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar1{-webkit-transform:rotate(0deg) translateY(-142%);-ms-transform:rotate(0deg) translateY(-142%);transform:rotate(0deg) translateY(-142%);-webkit-animation-delay:0s;animation-delay:0s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar2{-webkit-transform:rotate(30deg) translateY(-142%);-ms-transform:rotate(30deg) translateY(-142%);transform:rotate(30deg) translateY(-142%);-webkit-animation-delay:-.9163s;animation-delay:-.9163s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar3{-webkit-transform:rotate(60deg) translateY(-142%);-ms-transform:rotate(60deg) translateY(-142%);transform:rotate(60deg) translateY(-142%);-webkit-animation-delay:-.833s;animation-delay:-.833s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar4{-webkit-transform:rotate(90deg) translateY(-142%);-ms-transform:rotate(90deg) translateY(-142%);transform:rotate(90deg) translateY(-142%);-webkit-animation-delay:-.7497s;animation-delay:-.7497s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar5{-webkit-transform:rotate(120deg) translateY(-142%);-ms-transform:rotate(120deg) translateY(-142%);transform:rotate(120deg) translateY(-142%);-webkit-animation-delay:-.6664s;animation-delay:-.6664s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar6{-webkit-transform:rotate(150deg) translateY(-142%);-ms-transform:rotate(150deg) translateY(-142%);transform:rotate(150deg) translateY(-142%);-webkit-animation-delay:-.5831s;animation-delay:-.5831s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar7{-webkit-transform:rotate(180deg) translateY(-142%);-ms-transform:rotate(180deg) translateY(-142%);transform:rotate(180deg) translateY(-142%);-webkit-animation-delay:-.4998s;animation-delay:-.4998s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar8{-webkit-transform:rotate(210deg) translateY(-142%);-ms-transform:rotate(210deg) translateY(-142%);transform:rotate(210deg) translateY(-142%);-webkit-animation-delay:-.4165s;animation-delay:-.4165s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar9{-webkit-transform:rotate(240deg) translateY(-142%);-ms-transform:rotate(240deg) translateY(-142%);transform:rotate(240deg) translateY(-142%);-webkit-animation-delay:-.3332s;animation-delay:-.3332s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar10{-webkit-transform:rotate(270deg) translateY(-142%);-ms-transform:rotate(270deg) translateY(-142%);transform:rotate(270deg) translateY(-142%);-webkit-animation-delay:-.2499s;animation-delay:-.2499s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar11{-webkit-transform:rotate(300deg) translateY(-142%);-ms-transform:rotate(300deg) translateY(-142%);transform:rotate(300deg) translateY(-142%);-webkit-animation-delay:-.1666s;animation-delay:-.1666s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar12{-webkit-transform:rotate(330deg) translateY(-142%);-ms-transform:rotate(330deg) translateY(-142%);transform:rotate(330deg) translateY(-142%);-webkit-animation-delay:-.0833s;animation-delay:-.0833s}@-webkit-keyframes fade{0%{opacity:1}to{opacity:.25}}@keyframes fade{0%{opacity:1}to{opacity:.25}}.xgplayer-skin-default.xgplayer-is-enter .xgplayer-enter{display:block}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport RequestCssFullIcon from '../assets/requestCssFull.svg'\nimport ExitCssFullIcon from '../assets/exitCssFull.svg'\nimport '../style/controls/cssfullscreen.scss'\n\nlet s_cssFullscreen = function () {\n let player = this\n if (!player.config.cssFullscreen) { return }\n let btn = createDom('xg-cssfullscreen', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-requestfull\">${RequestCssFullIcon}</div>\n <div class=\"xgplayer-icon-exitfull\">${ExitCssFullIcon}</div>\n </xg-icon>`, {}, 'xgplayer-cssfullscreen')\n\n let tipsText = {}\n tipsText.requestfull = player.lang.CSSFULLSCREEN_TIPS\n tipsText.exitfull = player.lang.EXITCSSFULLSCREEN_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-requestfull\">${tipsText.requestfull}</span>\n <span class=\"xgplayer-tip-exitfull\">${tipsText.exitfull}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('cssFullscreenBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_cssFullscreen',\n method: s_cssFullscreen\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\">\\n <path transform=\\\"scale(0.028 0.028)\\\" d=\\\"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\\\"></path>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\">\\n <path transform=\\\"scale(0.028 0.028)\\\" d=\\\"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\\\"></path>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./cssfullscreen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-cssfullscreen,.xgplayer-skin-default .xgplayer-cssfullscreen-img{position:relative;-webkit-order:12;-moz-box-ordinal-group:13;order:12;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon{width:32px;margin-top:5px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-40px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover,.xgplayer-skin-default .xgplayer-cssfullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-47px}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen-img{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}.xgplayer-lang-is-en .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-46px}.lang-is-jp .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-120px}.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-60px}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport MutedIcon from '../assets/volumeMuted.svg'\nimport SmallIcon from '../assets/volumeSmall.svg'\nimport LargeIcon from '../assets/volumeLarge.svg'\nimport '../style/controls/volume.scss'\n\nlet s_volume = function () {\n let player = this\n let container = createDom('xg-volume', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-large\">${LargeIcon}</div>\n <div class=\"xgplayer-icon-small\">${SmallIcon}</div>\n <div class=\"xgplayer-icon-muted\">${MutedIcon}</div>\n </xg-icon>\n <xg-slider class=\"xgplayer-slider\" tabindex=\"2\">\n <xg-bar class=\"xgplayer-bar\">\n <xg-drag class=\"xgplayer-drag\"></xg-drag>\n </xg-bar>\n </xg-slider>`, {}, 'xgplayer-volume')\n player.once('ready', () => {\n if(player.controls) {\n player.controls.appendChild(container)\n }\n })\n let slider = container.querySelector('.xgplayer-slider')\n let bar = container.querySelector('.xgplayer-bar')\n let selected = container.querySelector('.xgplayer-drag')\n let icon = container.querySelector('.xgplayer-icon')\n selected.style.height = `${player.config.volume * 100}%`\n slider.volume = player.config.volume;\n\n bar.addEventListener('mousedown', e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeBarClick', e)\n });\n\n ['click', 'touchend'].forEach(item => {\n icon.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconClick')\n })\n })\n\n icon.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconEnter')\n });\n\n ['blur', 'mouseleave'].forEach(item => {\n container.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('volumeIconLeave')\n })\n })\n}\n\nexport default {\n name: 's_volume',\n method: s_volume\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" viewBox=\\\"0 0 28 28\\\">\\n <path transform=\\\"scale(0.0220625 0.0220625)\\\" d=\\\"M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z\\\"></path>\\n <path transform=\\\"scale(0.0220625 0.0220625)\\\" d=\\\"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\\\"></path>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" viewBox=\\\"0 0 28 28\\\">\\n <path transform=\\\"scale(0.0220625 0.0220625)\\\" d=\\\"M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z\\\"></path>\\n <path transform=\\\"scale(0.0220625 0.0220625)\\\" d=\\\"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\\\"></path>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" viewBox=\\\"0 0 28 28\\\">\\n <path transform=\\\"scale(0.0220625 0.0220625)\\\" d=\\\"M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z\\\"></path>\\n <path transform=\\\"scale(0.0220625 0.0220625)\\\" d=\\\"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\\\"></path>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./volume.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-volume{outline:none;-webkit-order:4;-moz-box-ordinal-group:5;order:4;width:40px;height:40px;display:block;position:relative;z-index:18}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon{margin-top:8px;cursor:pointer;position:absolute;bottom:-9px}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:none}.xgplayer-skin-default .xgplayer-slider{display:none;position:absolute;width:28px;height:92px;background:rgba(0,0,0,.54);border-radius:1px;bottom:42px;outline:none}.xgplayer-skin-default .xgplayer-slider:after{content:\\\" \\\";display:block;height:15px;width:28px;position:absolute;bottom:-15px;left:0;z-index:20}.xgplayer-skin-default .xgplayer-bar,.xgplayer-skin-default .xgplayer-drag{display:block;position:absolute;bottom:6px;left:12px;background:hsla(0,0%,100%,.3);border-radius:100px;width:4px;height:76px;outline:none;cursor:pointer}.xgplayer-skin-default .xgplayer-drag{bottom:0;left:0;background:#fa1f41;max-height:76px}.xgplayer-skin-default .xgplayer-drag:after{content:\\\" \\\";display:inline-block;width:8px;height:8px;background:#fff;box-shadow:0 0 5px 0 rgba(0,0,0,.26);position:absolute;border-radius:50%;left:-2px;top:-6px}.xgplayer-skin-default.xgplayer-volume-active .xgplayer-slider,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:none}.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:block}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-large,.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:none}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:block}.xgplayer-skin-default.xgplayer-mobile .xgplayer-volume .xgplayer-slider{display:none}\", \"\"]);\n\n// exports\n","import { createDom, addClass, removeClass, hasClass, toggleClass } from '../../utils/util'\nimport sniffer from '../../utils/sniffer'\nimport '../style/controls/definition.scss'\n\nlet s_definition = function () {\n let player = this\n let root = player.root\n let paused\n let container = createDom('xg-definition', '', {tabindex: 3}, 'xgplayer-definition')\n if (sniffer.device === 'mobile') {\n player.config.definitionActive = 'click'\n }\n\n function onCanplayResourceReady () {\n let list = player.definitionList\n let tmp = ['<ul>'], src = player.config.url, a = document.createElement('a')\n if (player.switchURL) {\n ['mp4', 'hls', '__flv__', 'dash'].every(item => {\n if (player[item]) {\n if(player[item].url) {\n a.href = player[item].url\n }\n if(item === '__flv__') {\n if(player[item]._options) {\n a.href = player[item]._options.url\n } else {\n a.href = player[item]._mediaDataSource.url\n }\n }\n if(item === 'hls') {\n a.href = player[item].originUrl || player[item].url\n src = a.href\n }\n src = a.href\n return false\n } else {\n return true\n }\n })\n } else {\n src = player.currentSrc || player.src\n }\n list.forEach(item => {\n a.href = item.url\n if (player.dash) {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${item.selected ? 'selected' : ''}'>${item.name}</li>`)\n } else {\n tmp.push(`<li url='${item.url}' cname='${item.name}' class='${a.href === src ? 'selected' : ''}'>${item.name}</li>`)\n }\n })\n let cursrc = list.filter(item => {\n a.href = item.url\n if (player.dash) {\n return item.selected === true\n } else {\n return a.href === src\n }\n })\n console.warn('cursrc:', cursrc, 'src:', src, 'list:', list)\n tmp.push(`</ul><p class='name'>${(cursrc[0] || {name: ''}).name}</p>`)\n let urlInRoot = root.querySelector('.xgplayer-definition')\n if (urlInRoot) {\n urlInRoot.innerHTML = tmp.join('')\n let cur = urlInRoot.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-definition-active')\n urlInRoot.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.definitionActive || player.config.definitionActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-definition-active')\n container.focus()\n })\n }\n player.controls.appendChild(container)\n }\n }\n function onResourceReady (list) {\n player.definitionList = list\n if (list && list instanceof Array && list.length > 0) {\n addClass(root, 'xgplayer-is-definition')\n player.once('canplay', onCanplayResourceReady)\n }\n }\n player.on('resourceReady', onResourceReady)\n\n function onPlayingChangeDefinition () {\n player.currentTime = player.curTime\n if (paused) {\n player.pause()\n } else {\n let playPromise = player.play()\n if (playPromise !== undefined && playPromise) {\n playPromise.catch(err => {})\n }\n }\n };\n function onTimeupdateChangeDefinition () {\n player.once('timeupdate', onPlayingChangeDefinition)\n };\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let list = player.definitionList\n let li = e.target || e.srcElement, a = document.createElement('a')\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n let from, to\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if(hasClass(item, 'selected')) {\n from = item.getAttribute('cname')\n removeClass(item, 'selected')\n player.emit('beforeDefinitionChange', item.getAttribute('url'))\n }\n })\n if (player.dash) {\n list.forEach(item => {\n item.selected = false\n if (item.name === li.innerHTML) {\n item.selected = true\n }\n })\n }\n\n addClass(li, 'selected')\n to = li.getAttribute('cname')\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}`\n a.href = li.getAttribute('url')\n paused = player.paused\n if (player.switchURL) {\n let curRUL = document.createElement('a');\n ['mp4', 'hls', '__flv__', 'dash'].every(item => {\n if (player[item]) {\n if(player[item].url) {\n curRUL.href = player[item].url\n }\n if(item === '__flv__') {\n if(player[item]._options) {\n curRUL.href = player[item]._options.url\n } else {\n curRUL.href = player[item]._mediaDataSource.url\n }\n }\n if(item === 'hls') {\n curRUL.href = player[item].originUrl || player[item].url\n }\n return false\n } else {\n return true\n }\n })\n if (curRUL.href !== a.href && !player.ended) {\n player.switchURL(a.href)\n }\n } else {\n if (player['hls']) {\n let curRUL = document.createElement('a')\n curRUL = player['hls'].url\n }\n if (a.href !== player.currentSrc) {\n player.curTime = player.currentTime\n if (!player.ended) {\n player.src = a.href\n }\n }\n }\n if(navigator.userAgent.toLowerCase().indexOf('android') > -1) {\n player.once('timeupdate', onTimeupdateChangeDefinition)\n } else {\n player.once('loadedmetadata', onPlayingChangeDefinition)\n }\n player.emit('definitionChange', {from, to})\n if (sniffer.device === 'mobile') {\n removeClass(player.root, 'xgplayer-definition-active')\n }\n } else if (player.config.definitionActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n if(sniffer.device === 'mobile') {\n toggleClass(player.root, 'xgplayer-definition-active')\n } else {\n addClass(player.root, 'xgplayer-definition-active')\n }\n container.focus()\n }\n player.emit('focus')\n }, false)\n })\n\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(root, 'xgplayer-definition-active')\n })\n\n function onBlur () {\n removeClass(root, 'xgplayer-definition-active')\n }\n player.on('blur', onBlur)\n\n function onDestroy () {\n player.off('resourceReady', onResourceReady)\n player.off('canplay', onCanplayResourceReady)\n if(navigator.userAgent.toLowerCase().indexOf('android') > -1) {\n player.off('timeupdate', onTimeupdateChangeDefinition)\n player.off('timeupdate', onPlayingChangeDefinition)\n } else {\n player.off('loadedmetadata', onPlayingChangeDefinition)\n }\n player.off('blur', onBlur)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n\n player.getCurrentDefinition = function () {\n let liList = player.controls.querySelectorAll('.xgplayer-definition ul li')\n for(let i = 0; i < liList.length; i++) {\n if(liList[i].className && liList[i].className.indexOf('selected') > -1) {\n return {\n name: liList[i].getAttribute('cname'),\n url: liList[i].getAttribute('url')\n }\n }\n }\n return {\n name: liList[0].getAttribute('cname'),\n url: liList[0].getAttribute('url')\n }\n }\n\n player.switchDefinition = function (definitionObj = {}) {\n let liList = player.controls.querySelectorAll('.xgplayer-definition ul li')\n for(let i = 0; i < liList.length; i++) {\n if(liList[i].getAttribute('cname') === definitionObj.name || liList[i].getAttribute('url') === definitionObj.url || i === definitionObj.index) {\n liList[i].click()\n }\n }\n }\n}\n\nexport default {\n name: 's_definition',\n method: s_definition\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./definition.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-definition{-webkit-order:5;-moz-box-ordinal-group:6;order:5;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-left:10px;margin-top:-119px}.xgplayer-skin-default .xgplayer-definition ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:0;text-align:center;white-space:nowrap;margin-left:-10px;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-definition ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-skin-default .xgplayer-definition ul li.selected,.xgplayer-skin-default .xgplayer-definition ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-definition .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-definition ul,.xgplayer-skin-default.xgplayer-is-definition .xgplayer-definition{display:block}\", \"\"]);\n\n// exports\n","import { createDom, addClass, removeClass, hasClass, toggleClass } from '../../utils/util'\nimport sniffer from '../../utils/sniffer'\nimport '../style/controls/playbackRate.scss'\n\nlet s_playbackRate = function () {\n let player = this\n let playbackRateList = []\n if (player.config.playbackRate) {\n playbackRateList = [].concat(player.config.playbackRate)\n playbackRateList.sort((a, b) => b - a)\n } else {\n return false\n }\n let unit = player.config.playbackRateUnit !== undefined ? player.config.playbackRateUnit : 'x'\n let container = createDom('xg-playbackrate', \" \", {}, 'xgplayer-playbackrate')\n if (sniffer.device === 'mobile') {\n player.config.playbackRateActive = 'click'\n }\n\n let list = []\n playbackRateList.forEach(item => {\n list.push({name: `${item}`, rate: `${item}${unit}`, selected: false})\n })\n let selectedSpeed = 1\n let tmp = ['<ul>']\n list.forEach(item => {\n if(player.config.defaultPlaybackRate && player.config.defaultPlaybackRate.toString() === item.name) {\n item.selected = true\n selectedSpeed = player.config.defaultPlaybackRate\n player.once('playing', () => { player.video.playbackRate = player.config.defaultPlaybackRate})\n } else if (item.name === '1.0' || item.name === '1') {\n if(!player.config.defaultPlaybackRate || player.config.defaultPlaybackRate === 1) {\n item.selected = true\n }\n }\n tmp.push(`<li cname='${item.name}' class='${item.selected ? 'selected' : ''}'>${item.rate}</li>`)\n })\n tmp.push(`</ul><p class='name'>${selectedSpeed}${unit}</p>`)\n let playbackDom = player.root.querySelector('.xgplayer-playbackrate')\n if (playbackDom) {\n playbackDom.innerHTML = tmp.join('')\n let cur = playbackDom.querySelector('.name')\n if (!player.config.playbackRateActive || player.config.playbackRateActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-playbackrate-active')\n playbackDom.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.playbackRateActive || player.config.playbackRateActive === 'hover') {\n cur.addEventListener('mouseenter', (e) => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-playbackrate-active')\n container.focus()\n })\n }\n player.once('ready', () => {\n player.controls.appendChild(container)\n })\n }\n\n let ev = ['touchend', 'click']\n ev.forEach(item => {\n container.addEventListener(item, e => {\n e.stopPropagation()\n e.preventDefault()\n let li = e.target\n if(li && li.tagName.toLocaleLowerCase() === 'li') {\n let from, to\n list.forEach(item => {\n item.selected = false\n if (li.textContent.replace(/\\s+/g,\"\") === item.rate) {\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n if(hasClass(item, 'selected')) {\n from = Number(item.getAttribute('cname'))\n removeClass(item, 'selected')\n }\n })\n item.selected = true\n player.video.playbackRate = item.name * 1\n selectedSpeed = item.name * 1\n }\n })\n addClass(li, 'selected')\n to = Number(li.getAttribute('cname'))\n li.parentNode.nextSibling.innerHTML = `${li.getAttribute('cname')}${unit}`\n player.emit('playbackrateChange', {from, to})\n if (sniffer.device === 'mobile') {\n removeClass(player.root, 'xgplayer-playbackrate-active')\n }\n } else if (player.config.playbackRateActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'span')) {\n if(sniffer.device === 'mobile') {\n toggleClass(player.root, 'xgplayer-playbackrate-active')\n } else {\n addClass(player.root, 'xgplayer-playbackrate-active')\n }\n container.focus()\n }\n player.emit('focus')\n }, false)\n })\n container.addEventListener('mouseleave', (e) => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(player.root, 'xgplayer-playbackrate-active')\n })\n\n function onBlur () {\n removeClass(player.root, 'xgplayer-playbackrate-active')\n }\n player.on('blur', onBlur)\n\n player.on('play', () => {\n if(player.video.playbackRate.toFixed(1) !== selectedSpeed.toFixed(1) ) {\n player.video.playbackRate = selectedSpeed\n }\n })\n\n player.switchPlaybackRate = function (playbackRateObj = {}) {\n let liList = player.controls.querySelectorAll('.xgplayer-playbackrate ul li')\n for(let i = 0; i < liList.length; i++) {\n if(!hasClass(liList[i], 'selected') && (liList[i].getAttribute('cname') === `${playbackRateObj.playbackRate}` || i === playbackRateObj.index)) {\n liList[i].click()\n }\n }\n }\n\n player.on('ratechange', () => {\n player.switchPlaybackRate({ playbackRate: player.playbackRate })\n })\n}\n\nexport default {\n name: 's_playbackRate',\n method: s_playbackRate\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./playbackRate.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./playbackRate.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./playbackRate.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-playbackrate{-webkit-order:8;-moz-box-ordinal-group:9;order:8;width:60px;height:150px;z-index:18;position:relative;display:inline-block;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-playbackrate ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);text-align:left;white-space:nowrap;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-playbackrate ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);position:relative;padding:4px 0;text-align:center}.xgplayer-skin-default .xgplayer-playbackrate ul li.selected,.xgplayer-skin-default .xgplayer-playbackrate ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-playbackrate ul li:first-child{position:relative;margin-top:12px}.xgplayer-skin-default .xgplayer-playbackrate ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-skin-default .xgplayer-playbackrate .name{width:60px;height:20px;position:absolute;bottom:0;text-align:center;font-family:PingFangSC-Regular;font-size:13px;background:rgba(0,0,0,.38);color:hsla(0,0%,100%,.8);border-radius:10px;line-height:20px}.xgplayer-skin-default .xgplayer-playbackrate span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-skin-default .xgplayer-playbackrate:hover{opacity:1}.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-playbackrate ul{display:block}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\n\nlet s_localPreview = function () {\n let player = this\n if (player.config.preview && player.config.preview.uploadEl) {\n let preview = createDom('xg-preview', '<input type=\"file\">', {}, 'xgplayer-preview')\n let upload = preview.querySelector('input')\n player.config.preview.uploadEl.appendChild(preview)\n upload.onchange = function () {\n player.emit('upload', upload)\n }\n }\n}\n\nexport default {\n name: 's_localPreview',\n method: s_localPreview\n}","import { createDom } from '../../utils/util'\nimport DownloadIcon from '../assets/download.svg'\nimport '../style/controls/download.scss'\n\nlet s_download = function () {\n let player = this\n if (!player.config.download) { return }\n let btn = createDom('xg-download', `<xg-icon class=\"xgplayer-icon\">${DownloadIcon}</xg-icon>`, {}, 'xgplayer-download')\n\n let tipsText = player.lang.DOWNLOAD_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-download\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('downloadBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_download',\n method: s_download\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"24px\\\" height=\\\"24px\\\" viewBox=\\\"0 0 24 24\\\">\\n <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\">\\n <g transform=\\\"translate(-488.000000, -340.000000)\\\" fill=\\\"#FFFFFF\\\">\\n <g id=\\\"Group-2\\\">\\n <g id=\\\"volme_big-copy\\\" transform=\\\"translate(488.000000, 340.000000)\\\">\\n <rect id=\\\"Rectangle-18\\\" x=\\\"11\\\" y=\\\"4\\\" width=\\\"2\\\" height=\\\"12\\\" rx=\\\"1\\\"></rect>\\n <rect id=\\\"Rectangle-2\\\" x=\\\"3\\\" y=\\\"18\\\" width=\\\"18\\\" height=\\\"2\\\" rx=\\\"1\\\"></rect>\\n <rect id=\\\"Rectangle-2\\\" transform=\\\"translate(4.000000, 17.500000) rotate(90.000000) translate(-4.000000, -17.500000) \\\" x=\\\"1.5\\\" y=\\\"16.5\\\" width=\\\"5\\\" height=\\\"2\\\" rx=\\\"1\\\"></rect><rect id=\\\"Rectangle-2-Copy-3\\\" transform=\\\"translate(20.000000, 17.500000) rotate(90.000000) translate(-20.000000, -17.500000) \\\" x=\\\"17.5\\\" y=\\\"16.5\\\" width=\\\"5\\\" height=\\\"2\\\" rx=\\\"1\\\"></rect>\\n <path d=\\\"M9.48791171,8.26502656 L9.48791171,14.2650266 C9.48791171,14.8173113 9.04019646,15.2650266 8.48791171,15.2650266 C7.93562696,15.2650266 7.48791171,14.8173113 7.48791171,14.2650266 L7.48791171,7.26502656 C7.48791171,6.71274181 7.93562696,6.26502656 8.48791171,6.26502656 L15.4879117,6.26502656 C16.0401965,6.26502656 16.4879117,6.71274181 16.4879117,7.26502656 C16.4879117,7.81731131 16.0401965,8.26502656 15.4879117,8.26502656 L9.48791171,8.26502656 Z\\\" id=\\\"Combined-Shape\\\" transform=\\\"translate(11.987912, 10.765027) scale(1, -1) rotate(45.000000) translate(-11.987912, -10.765027) \\\"></path>\\n </g>\\n </g>\\n </g>\\n </g>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./download.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-download{position:relative;-webkit-order:9;-moz-box-ordinal-group:10;order:9;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-download .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-download .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-download .xgplayer-icon svg{position:relative;top:5px;left:5px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips{margin-left:-20px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips .xgplayer-tip-download{display:block}.xgplayer-skin-default .xgplayer-download:hover{opacity:.85}.xgplayer-skin-default .xgplayer-download:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-download .xgplayer-tips{margin-left:-32px}.xgplayer-lang-is-jp .xgplayer-download .xgplayer-tips{margin-left:-40px}\", \"\"]);\n\n// exports\n","import { createDom, deepCopy, addClass, removeClass } from '../../utils/util'\nimport DanmuJs from 'danmu.js'\nimport PanelIcon from '../assets/panel.svg'\nimport '../style/controls/danmu.scss'\n\nlet s_danmu = function () {\n let player = this\n let root = player.root\n if(!player.config.danmu) { return }\n let container = createDom('xg-danmu', '', {}, 'xgplayer-danmu')\n player.once('ready', () => {\n root.appendChild(container)\n })\n let config = deepCopy({\n container,\n player: player.video,\n comments: [],\n area: {\n start: 0,\n end: 1\n }\n }, player.config.danmu)\n let panelBtn\n if (player.config.danmu.panel) {\n panelBtn = createDom('xg-panel', `<xg-panel-icon class=\"xgplayer-panel-icon\">\n ${PanelIcon}\n </xg-panel-icon>\n <xg-panel-slider class=\"xgplayer-panel-slider\">\n <xg-hidemode class=\"xgplayer-hidemode\">\n <p class=\"xgplayer-hidemode-font\">屏蔽类型</p>\n <ul class=\"xgplayer-hidemode-radio\">\n <li class=\"xgplayer-hidemode-scroll\" id=\"false\">滚动</li><li class=\"xgplayer-hidemode-top\" id=\"false\">顶部</li><li class=\"xgplayer-hidemode-bottom\" id=\"false\">底部</li><li class=\"xgplayer-hidemode-color\" id=\"false\">色彩</li>\n </ul>\n </xg-hidemode>\n <xg-transparency class=\"xgplayer-transparency\">\n <span>不透明度</span>\n <input class=\"xgplayer-transparency-line xgplayer-transparency-color xgplayer-transparency-bar xgplayer-transparency-gradient\" type=\"range\" min=\"0\" max=\"100\" step=\"0.1\" value=\"50\"></input>\n </xg-transparency>\n <xg-showarea class=\"xgplayer-showarea\">\n <div class=\"xgplayer-showarea-name\">显示区域</div>\n <div class=\"xgplayer-showarea-control\">\n <div class=\"xgplayer-showarea-control-up\">\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-onequarters\">1/4</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-twoquarters selected-color\">1/2</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-threequarters\">3/4</span>\n <span class=\"xgplayer-showarea-control-up-item xgplayer-showarea-full\">1</span>\n </div>\n <div class=\"xgplayer-showarea-control-down\">\n <div class=\"xgplayer-showarea-control-down-dots\">\n <span class=\"xgplayer-showarea-onequarters-dot\"></span>\n <span class=\"xgplayer-showarea-twoquarters-dot\"></span>\n <span class=\"xgplayer-showarea-threequarters-dot\"></span>\n <span class=\"xgplayer-showarea-full-dot\"></span>\n </div>\n <input class=\"xgplayer-showarea-line xgplayer-showarea-color xgplayer-showarea-bar xgplayer-gradient\" type=\"range\" min=\"1\" max=\"4\" step=\"1\" value=\"1\">\n </div>\n </div>\n </xg-showarea>\n <xg-danmuspeed class=\"xgplayer-danmuspeed\">\n <div class=\"xgplayer-danmuspeed-name\">弹幕速度</div>\n <div class=\"xgplayer-danmuspeed-control\">\n <div class=\"xgplayer-danmuspeed-control-up\">\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-small\">慢</span>\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-middle selected-color\">中</span>\n <span class=\"xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-large\">快</span>\n </div>\n <div class=\"xgplayer-danmuspeed-control-down\">\n <div class=\"xgplayer-danmuspeed-control-down-dots\">\n <span class=\"xgplayer-danmuspeed-small-dot\"></span>\n <span class=\"xgplayer-danmuspeed-middle-dot\"></span>\n <span class=\"xgplayer-danmuspeed-large-dot\"></span>\n </div>\n <input class=\"xgplayer-danmuspeed-line xgplayer-danmuspeed-color xgplayer-danmuspeed-bar xgplayer-gradient\" type=\"range\" min=\"50\" max=\"150\" step=\"50\" value=\"100\">\n </div>\n </div>\n </xg-danmuspeed>\n <xg-danmufont class=\"xgplayer-danmufont\">\n <div class=\"xgplayer-danmufont-name\">字体大小</div>\n <div class=\"xgplayer-danmufont-control\">\n <div class=\"xgplayer-danmufont-control-up\">\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-small\">小</span>\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-middle\">中</span>\n <span class=\"xgplayer-danmufont-control-up-item xgplayer-danmufont-large selected-color\">大</span>\n </div>\n <div class=\"xgplayer-danmufont-control-down\">\n <div class=\"xgplayer-danmufont-control-down-dots\">\n <span class=\"xgplayer-danmufont-small-dot\"></span>\n <span class=\"xgplayer-danmufont-middle-dot\"></span>\n <span class=\"xgplayer-danmufont-large-dot\"></span>\n </div>\n <input class=\"xgplayer-danmufont-line xgplayer-danmufont-color xgplayer-danmufont-bar xgplayer-gradient\" type=\"range\" min=\"20\" max=\"30\" step=\"5\" value=\"25\">\n </div>\n </div>\n </xg-danmufont>\n </xg-panel-slider>`, {tabindex: 7}, 'xgplayer-panel')\n player.once('ready', () => {\n player.controls.appendChild(panelBtn)\n })\n }\n player.once('complete', () => {\n let danmujs = new DanmuJs(config)\n player.emit('initDefaultDanmu', danmujs)\n player.danmu = danmujs\n\n if (!player.config.danmu.panel) {\n return\n }\n\n let slider = panelBtn.querySelector('.xgplayer-panel-slider')\n let focusStatus\n let focusarray = ['mouseenter', 'touchend', 'click']\n focusarray.forEach(item => {\n panelBtn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n addClass(slider, 'xgplayer-panel-active')\n panelBtn.focus()\n focusStatus = true\n })\n })\n panelBtn.addEventListener('mouseleave', function (e) {\n e.preventDefault()\n e.stopPropagation()\n removeClass(slider, 'xgplayer-panel-active')\n focusStatus = false\n })\n slider.addEventListener('mouseleave', function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (focusStatus === false) {\n removeClass(slider, 'xgplayer-panel-active')\n }\n })\n\n let danmuConfig = player.config.danmu\n let hidemodeScroll = panelBtn.querySelector('.xgplayer-hidemode-scroll')\n let hidemodeTop = panelBtn.querySelector('.xgplayer-hidemode-top')\n let hidemodeBottom = panelBtn.querySelector('.xgplayer-hidemode-bottom')\n let hidemodeColor = panelBtn.querySelector('.xgplayer-hidemode-color')\n let hidemodeArray = {\n 'scroll': hidemodeScroll,\n 'top': hidemodeTop,\n 'bottom': hidemodeBottom,\n 'color': hidemodeColor\n }\n for (let key in hidemodeArray) {\n let keys = key\n let ev = ['touchend', 'click']\n ev.forEach(item => {\n hidemodeArray[keys].addEventListener(item, function (e) {\n if (hidemodeArray[keys].getAttribute('id') !== 'true') {\n hidemodeArray[keys].style.color = '#f85959'\n hidemodeArray[keys].setAttribute('id', 'true')\n player.danmu.hide(keys)\n } else {\n hidemodeArray[keys].style.color = '#aaa'\n hidemodeArray[keys].setAttribute('id', 'false')\n player.danmu.show(keys)\n }\n })\n })\n }\n let transparency = panelBtn.querySelector('.xgplayer-transparency-line')\n let transparencyGradient = panelBtn.querySelector('.xgplayer-transparency-gradient')\n let transparencyValue = 50\n transparencyGradient.style.background = 'linear-gradient(to right, #f85959 0%, #f85959 ' + transparencyValue + '%, #aaa ' + transparencyValue + '%, #aaa)'\n transparency.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n transparencyValue = e.target.value\n transparencyGradient.style.background = 'linear-gradient(to right, #f85959 0%, #f85959 ' + transparencyValue + '%, #aaa ' + transparencyValue + '%, #aaa)'\n danmuConfig.comments.forEach(item => {\n item.style.opacity = transparencyValue / 100\n })\n })\n let showarea = panelBtn.querySelector('.xgplayer-showarea-line')\n showarea.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let showareaValue = e.target.value\n player.danmu.config.area.end = showareaValue / 100\n player.config.danmu.area.end = showareaValue / 100\n player.danmu.bulletBtn.main.channel.resize()\n })\n let danmuspeed = panelBtn.querySelector('.xgplayer-danmuspeed-line')\n danmuspeed.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let danmuspeedValue = e.target.value\n danmuConfig.comments.forEach(item => {\n item.duration = (200 - danmuspeedValue) * 100\n })\n })\n let danmufont = panelBtn.querySelector('.xgplayer-danmufont-line')\n danmufont.addEventListener('input', function (e) {\n e.preventDefault()\n e.stopPropagation()\n let danmufontValue = e.target.value\n danmuConfig.comments.forEach(item => {\n item.style.fontSize = danmufontValue + 'px'\n })\n })\n if(navigator.userAgent.indexOf(\"Firefox\") > -1) {\n for (let i = 0; i < slider.querySelectorAll('input').length; i++) {\n slider.querySelectorAll('input')[i].style.marginTop = '10px'\n }\n }\n })\n}\n\nexport default {\n name: 's_danmu',\n method: s_danmu\n}","/*! Built @Thu, 23 Feb 2023 07:24:27 GMT */\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}),t.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},t.hasClass=i,t.addClass=o,t.removeClass=r,t.toggleClass=function(e,t){t.split(/\\s+/g).forEach((function(t){i(e,t)?r(e,t):o(e,t)}))},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},t.deepCopy=function e(t,n){if(\"Object\"===a(n)&&\"Object\"===a(t))return Object.keys(n).forEach((function(i){\"Object\"!==a(n[i])||n[i]instanceof Node?\"Array\"===a(n[i])?t[i]=\"Array\"===a(t[i])?t[i].concat(n[i]):n[i]:t[i]=n[i]:t[i]?e(t[i],n[i]):t[i]=n[i]})),t},t.typeOf=a,t.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\"\"},t.attachEventListener=function(e,t,n,i){if(i)e.on(t,n),function(e,t,n,i){e.once(i,(function o(){e.off(t,n),e.off(i,o)}))}(e,t,n,i);else{e.on(t,(function i(o){n(o),e.off(t,i)}))}},t.styleUtil=function(e,t,n){var i=e.style;try{i[t]=n}catch(e){i.setProperty(t,n)}},t.styleCSSText=function(e,t){var n=e.style;try{n.cssText=t}catch(e){}},t.isNumber=function(e){return\"number\"==typeof e&&!Number.isNaN(e)},t.throttle=function(e,t){var n=this,i=0;return function(){for(var o=arguments.length,r=Array(o),a=0;a<o;a++)r[a]=arguments[a];clearTimeout(i),i=setTimeout((function(){return e.apply(n,r)}),t)}};t.hasOwnProperty=Object.prototype.hasOwnProperty;function i(e,t){return e.classList?Array.prototype.some.call(e.classList,(function(e){return e===t})):!!e.className.match(new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\"))}function o(e,t){e.classList?t.replace(/(^\\s+|\\s+$)/g,\"\").split(/\\s+/g).forEach((function(t){t&&e.classList.add(t)})):i(e,t)||(e.className+=\" \"+t)}function r(e,t){e.classList?t.split(/\\s+/g).forEach((function(t){e.classList.remove(t)})):i(e,t)&&t.split(/\\s+/g).forEach((function(t){var n=new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\");e.className=e.className.replace(n,\" \")}))}function a(e){return Object.prototype.toString.call(e).match(/([^\\s.*]+)(?=]$)/g)[0]}},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(18)();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){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var i,o=n(5),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}),t.DanmuJs=void 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=h(n(6)),r=n(25),a=h(n(1)),s=h(n(27)),l=h(n(32)),u=n(33),c=n(0);function h(e){return e&&e.__esModule?e:{default:e}}function f(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=t.DanmuJs=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=f(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)),i=n;i.setLogger(\"danmu\"),i.logger&&i.logger.info(\"danmu.js version: \"+r.version);var a=i.config={overlap:!1,area:{start:0,end:1,lines:void 0},live:!1,comments:[],direction:\"r2l\",needResizeObserver:!1,dropStaleComments:!1,channelSize:void 0,maxCommentsLength:void 0,bulletOffset:void 0,interval:2e3,highScorePriority:!0};if((0,c.deepCopy)(a,e),(0,o.default)(i),i.hideArr=[],i.domObj=new l.default,i.freezeId=null,a.comments.forEach((function(e){e.duration=e.duration?e.duration:5e3,e.mode||(e.mode=\"scroll\")})),i.container=a.container&&1===a.container.nodeType?a.container:null,!i.container)return i.emit(\"error\",\"container id can't be empty\"),!1,f(n,!1);if(a.containerStyle){var u=a.containerStyle;Object.keys(u).forEach((function(e){i.container.style[e]=u[e]}))}return i.live=a.live,i.player=a.player,i.direction=a.direction,(0,c.addClass)(i.container,\"danmu\"),i.bulletBtn=new s.default(i),i.main=i.bulletBtn.main,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,u.addObserver)(this.container,(function(){e.logger&&e.logger.info(\"needResizeObserver\"),e.resize()}))}},{key:\"start\",value:function(){this.logger&&this.logger.info(\"start\"),this.main.start()}},{key:\"pause\",value:function(){this.logger&&this.logger.info(\"pause\"),this.main.pause()}},{key:\"play\",value:function(){this.logger&&this.logger.info(\"play\"),this.main.play()}},{key:\"stop\",value:function(){this.logger&&this.logger.info(\"stop\"),this.main.stop()}},{key:\"clear\",value:function(){this.logger&&this.logger.info(\"clear\"),this.main.clear()}},{key:\"destroy\",value:function(){for(var e in(0,u.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]\"));var t=this.main;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?(t.data.unshift(e),e.realTime&&(t.readData(),t.dataHandle())):t.data.push(e),t.keepPoolWatermark())}},{key:\"setCommentID\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setCommentID: oldID \"+e+\" newID \"+t),e&&t&&(this.main.data.some((function(n){return n.id===e&&(n.id=t,!0)})),this.main.queue.some((function(i){return i.id===e&&(i.id=t,i.pauseMove(),\"paused\"!==n.main.status&&i.startMove(),!0)})))}},{key:\"setCommentDuration\",value:function(e,t){var n=this;this.logger&&this.logger.info(\"setCommentDuration: id \"+e+\" duration \"+t),e&&t&&(t=t||5e3,this.main.data.some((function(n){return n.id===e&&(n.duration=t,!0)})),this.main.queue.some((function(i){return i.id===e&&(i.duration=t,i.pauseMove(),\"paused\"!==n.main.status&&i.startMove(),!0)})))}},{key:\"setCommentLike\",value:function(e,t){this.logger&&this.logger.info(\"setCommentLike: id \"+e+\" like \"+t),e&&t&&(this.main.data.some((function(n){return n.id===e&&(n.like=t,!0)})),this.main.queue.some((function(n){return n.id===e&&(n.pauseMove(),n.setLikeDom(t.el,t.style),\"paused\"!==n.danmu.main.status&&n.startMove(),!0)})))}},{key:\"restartComment\",value:function(e){if(this.logger&&this.logger.info(\"restartComment: id \"+e),e){var t=this.main;if(this._releaseCtrl(e),\"closed\"===t.status)return;t.queue.some((function(n){return n.id===e&&(\"paused\"!==t.status?n.startMove(!0):n.status=\"paused\",!0)}))}}},{key:\"_releaseCtrl\",value:function(e){this.freezeId&&e===this.freezeId&&(this.mouseControl=!1,this.freezeId=null)}},{key:\"_freezeCtrl\",value:function(e){this.mouseControl=!0,this.freezeId=e}},{key:\"freezeComment\",value:function(e){if(this.logger&&this.logger.info(\"freezeComment: id \"+e),e){this._freezeCtrl(e),this.main.queue.some((function(t){return t.id===e&&(t.status=\"forcedPause\",t.pauseMove(),t.el&&t.el.style&&(0,c.styleUtil)(t.el,\"zIndex\",10),!0)}))}}},{key:\"removeComment\",value:function(e){if(this.logger&&this.logger.info(\"removeComment: id \"+e),e){var t=this;t._releaseCtrl(e),t.main.queue.some((function(t){return t.id===e&&(t.remove(),!0)})),t.main.data=t.main.data.filter((function(n){var i=n.id!==e;return i||t.main.dataElHandle([n]),i}))}}},{key:\"updateComments\",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.logger&&this.logger.info(\"updateComments: \"+e.length+\", isClear \"+t);var n=this.main;\"boolean\"==typeof t&&t&&(n.dataElHandle(n.data),n.data=[]),n.data=n.data.concat(e),n.sortData(),n.keepPoolWatermark()}},{key:\"setAllDuration\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\",t=this,n=arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];this.logger&&this.logger.info(\"setAllDuration: mode \"+e+\" duration \"+n+\" force \"+i),n&&(n=n||5e3,i&&(this.main.forceDuration=n),this.main.data.forEach((function(t){e===t.mode&&(t.duration=n)})),this.main.queue.forEach((function(i){e===i.mode&&(i.duration=n,i.pauseMove(),\"paused\"!==t.main.status&&i.startMove())})))}},{key:\"setPlayRate\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"scroll\",n=arguments[1];this.logger&&this.logger.info(\"setPlayRate: \"+n),(0,c.isNumber)(n)&&n>0&&(this.main.playRate=n,this.main.queue.forEach((function(n){t===n.mode&&(n.pauseMove(),\"paused\"!==e.main.status&&n.startMove())})))}},{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,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{reflow:!0};this.logger&&this.logger.info(\"setFontSize: size \"+e+\" channelSize \"+t),this.fontSize=e+\"px\",e&&(this.main.data.forEach((function(e){e.style&&(e.style.fontSize=n.fontSize)})),this.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,i.reflow&&this.main.channel.resizeSync())}},{key:\"setArea\",value:function(e){this.logger&&this.logger.info(\"setArea: area \"+e),this.config.area=e,!1!==e.reflow&&this.main.channel.resizeSync()}},{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.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\")}},{key:\"status\",get:function(){return this.main.status}},{key:\"state\",get:function(){var e=this.main;return{status:e.status,comments:e.data,bullets:e.queue,displayArea:e.channel.getRealOccupyArea()}}},{key:\"containerPos\",get:function(){return this.main.channel.containerPos}}]),t}(a.default);t.default=d},function(e,t,n){\"use strict\";var i,o,r,a,s,l,u,c=n(7),h=n(24),f=Function.prototype.apply,d=Function.prototype.call,p=Object.create,g=Object.defineProperty,m=Object.defineProperties,v=Object.prototype.hasOwnProperty,y={configurable:!0,enumerable:!1,writable:!0};o=function(e,t){var n,o;return h(t),o=this,i.call(this,e,n=function(){r.call(o,e,n),f.call(t,this,arguments)}),n.__eeOnceListener__=t,this},s={on:i=function(e,t){var n;return h(t),v.call(this,\"__ee__\")?n=this.__ee__:(n=y.value=p(null),g(this,\"__ee__\",y),y.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(h(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)f.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];f.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?p(u):m(Object(e),l)},t.methods=s},function(e,t,n){\"use strict\";var i=n(3),o=n(8),r=n(12),a=n(20),s=n(21);(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,h;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),h={get:t,set:n,configurable:l,enumerable:u},c?r(a(c),h):h}},function(e,t,n){\"use strict\";var i=n(9),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(10);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(11);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(13)()?Object.assign:n(14)},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(15),o=n(19),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(16)()?Object.keys:n(17)},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(22)()?String.prototype.contains:n(23)},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){e.exports=JSON.parse('{\"version\":\"1.1.8\"}')},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(28)),a=n(0);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 r.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=(0,a.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)a.hasOwnProperty.call(this,e)&&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=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));return n.setLogger(\"main\"),n.danmu=e,n.container=e.container,n.channel=new a.default(e),n.data=[].concat(e.config.comments),n.playedData=[],n.queue=[],n.timer=null,n.playRate=1,n.retryStatus=\"normal\",n.interval=e.config.interval,n._status=\"idle\",(0,s.attachEventListener)(e,\"bullet_remove\",n.updateQueue.bind(n),\"destroy\"),(0,s.attachEventListener)(e,\"changeDirection\",(function(e){n.danmu.direction=e}),\"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:\"_cancelDataHandleTimer\",value:function(){this.handleId&&(clearTimeout(this.handleId),this.handleId=null),this.handleTimer&&(clearTimeout(this.handleTimer),this.handleTimer=null)}},{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),this._cancelDataHandleTimer(),this.channel.destroy(),this.dataElHandle(this.data),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){return t.id===e.bullet.id&&(t.attached_=!1,!0)}))}},{key:\"init\",value:function(){var e=this;e.retryStatus=\"normal\",e.sortData(),function t(){\"closed\"!==e._status||\"stop\"!==e.retryStatus?(\"playing\"===e._status&&(e.readData(),e.dataHandle()),\"stop\"===e.retryStatus&&\"paused\"!==e._status||(e.handleTimer=setTimeout((function(){e.handleId=requestAnimationFrame((function(){t()}))}),250))):e._cancelDataHandleTimer()}()}},{key:\"start\",value:function(){this.logger&&this.logger.info(\"start\");\"playing\"!==this._status&&(this._status=\"playing\",this.queue=[],this.container.innerHTML=\"\",this.channel.reset(),this.init())}},{key:\"stop\",value:function(){this.logger&&this.logger.info(\"stop\");\"closed\"!==this._status&&(this._status=\"closed\",this.retryStatus=\"stop\",this.queue=[],this.container.innerHTML=\"\",this.channel.reset())}},{key:\"clear\",value:function(){this.logger&&this.logger.info(\"clear\"),this.channel.reset(),this.dataElHandle(this.data),this.data=[],this.queue=[],this.container.innerHTML=\"\"}},{key:\"play\",value:function(){var e=this;if(\"closed\"!==this._status){this.logger&&this.logger.info(\"play\"),this._status=\"playing\";var t=this.channel.channels;t&&t.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(n){e.queue.forEach((function(e){e.startMove(),e.resized=!0}));for(var i=0;i<t.length;i++)t[i].queue[n].forEach((function(e){e.resized=!1}))}))}else this.logger&&this.logger.info(\"play ignored\")}},{key:\"pause\",value:function(){if(\"closed\"!==this._status){this.logger&&this.logger.info(\"pause\"),this._status=\"paused\";var e=this.channel.channels;e&&e.length>0&&this.queue.forEach((function(e){e.pauseMove()}))}else this.logger&&this.logger.info(\"pause ignored\")}},{key:\"dataHandle\",value:function(){\"paused\"!==this._status&&\"closed\"!==this._status&&this.queue.length&&this.queue.forEach((function(e){\"waiting\"===e.status&&e.startMove()}))}},{key:\"readData\",value:function(){var e=this.danmu,t=this.interval,n=this.channel,i=e.player,o=void 0,a=void 0;if(e.isReady){if(i){var l=i.currentTime?Math.floor(1e3*i.currentTime):0;a=this.data.filter((function(n){return!n.start&&e.hideArr.indexOf(n.mode)<0&&(!n.color||e.hideArr.indexOf(\"color\")<0)&&(n.start=l),!n.attached_&&e.hideArr.indexOf(n.mode)<0&&(!n.color||e.hideArr.indexOf(\"color\")<0)&&n.start-t<=l&&l<=n.start+t})),e.config.highScorePriority&&a.sort((function(e,t){return t.prior&&!e.prior||(t.score||-1)-(e.score||-1)})),e.live&&(this.dataElHandle(this.data),this.data=[])}else 0===(a=this.data.splice(0,1)).length&&(a=this.playedData.splice(0,1));if(a.length>0){n.updatePos();var u=2;e:for(var c,h=0;h<a.length;h++)if(c=a[h],this.forceDuration&&this.forceDuration!==c.duration&&(c.duration=this.forceDuration),(o=new r.default(e,c))&&!o.bulletCreateFail)if(o.attach(),c.attached_=!0,n.addBullet(o).result)this.queue.push(o),o.topInit(),u=2;else{for(var f in o.detach(),o)s.hasOwnProperty.call(o,f)&&delete o[f];if(o=null,c.attached_=!1,c.noDiscard&&(c.prior?this.data.unshift(c):this.data.push(c)),0===u)break e;u--}else{if(0===u)break e;u--}}}}},{key:\"sortData\",value:function(){this.data.sort((function(e,t){return(e.start||-1)-(t.start||-1)}))}},{key:\"keepPoolWatermark\",value:function(){var e=this.danmu,t=e.config,n=e.player,i=this.data,o=[],r=0;if(\"number\"==typeof t.maxCommentsLength&&i.length>t.maxCommentsLength){r=i.length-t.maxCommentsLength;for(var a,s=0;s<r;s++)(a=i[s]).prior&&!a.attached_&&o.push(i[s])}else if(t.dropStaleComments&&n&&n.currentTime){var l=Math.floor(1e3*n.currentTime)-t.interval;if(l>0)for(var u,c=0;c<i.length;c++)if((u=i[c]).prior&&!u.attached_&&o.push(i[c]),u.start>l){r=c;break}}r>0&&(this.dataElHandle(i,0,r),i.splice(0,r),this.data=o.concat(i))}},{key:\"dataElHandle\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments[2];if(Number.isNaN(n))n=e.length;else if(n>e.length)throw\"dataElHandle invalid range: \"+t+\"-\"+n;for(var i=t;i<n;i++){var o=e[i];if(o&&\"function\"==typeof o.onElDestroy)try{o.onElDestroy(o),o.onElDestroy=null}catch(e){console.error(\"danmu onElDestroy fail:\",e)}}}},{key:\"status\",get:function(){return this._status}}]),t}(o.default);t.default=u,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Bullet=void 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(1),a=(i=r)&&i.__esModule?i:{default:i},s=n(0);function l(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 u=t.Bullet=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=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)),o=i,r=void 0,a=\"\",u=n.style||{};if(i.setLogger(\"bullet\"),i.danmu=e,i.options=n,i.duration=n.duration,i.id=n.id,i.container=e.container,i.start=n.start,i.prior=n.prior,i.realTime=n.realTime,i.color=n.color,i.bookChannelId=n.bookChannelId,i.direction=e.direction,i.reuseDOM=!0,i.domObj=e.domObj,n.el&&1===n.el.nodeType){if(n.el.parentNode)return l(i,{bulletCreateFail:!0});if(e.config.disableCopyDOM||n.disableCopyDOM)i.reuseDOM=!1,r=n.el;else{var c=(0,s.copyDom)(n.el);n.eventListeners&&n.eventListeners.length>0&&n.eventListeners.forEach((function(e){c.addEventListener(e.event,e.listener,e.useCapture||!1)})),(r=i.domObj.use()).childNodes.length>0&&(r.innerHTML=\"\"),r.textContent&&(r.textContent=\"\"),r.appendChild(c)}}else(r=i.domObj.use()).textContent=n.txt;i.onChangeDirection=function(e){o.direction=e},i.danmu.on(\"changeDirection\",i.onChangeDirection);var h=void 0;if((0,s.isNumber)(e.config.bulletOffset)&&e.config.bulletOffset>=0)h=e.config.bulletOffset;else{var f=e.containerPos;h=f.width/10>100?100:f.width/10}var d=n.realTime?0:Math.floor(Math.random()*h),p=i.updateOffset(d,!0);return u.left=p,Object.keys(u).forEach((function(e){a+=e+\":\"+u[e]+\";\"})),(0,s.styleCSSText)(r,a),\"top\"===n.mode||\"bottom\"===n.mode?i.mode=n.mode:i.mode=\"scroll\",i.el=r,n.like&&n.like.el&&i.setLikeDom(n.like.el,n.like.style),i.status=\"waiting\",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),o(t,[{key:\"updateOffset\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.random=e;var n=this.danmu.containerPos.width+e+\"px\";return t||(0,s.styleUtil)(this.el,\"left\",this.danmu.containerPos.width+e+\"px\"),n}},{key:\"attach\",value:function(){var e=this.el;this.container.contains(e)||this.container.appendChild(e),this.elPos=e.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&&(this.duration=(this.danmu.containerPos.width+this.random+this.width)/this.moveV*1e3),this.danmu.config&&(this.danmu.config.mouseControl&&(this.mouseoverFunWrapper=this.mouseoverFun.bind(this),e.addEventListener(\"mouseover\",this.mouseoverFunWrapper,!1)),this.danmu.config.mouseEnterControl&&(this.mouseEnterFunWrapper=this.mouseoverFun.bind(this),e.addEventListener(\"mouseenter\",this.mouseEnterFunWrapper,!1))),this._onTransitionEnd=this._onTransitionEnd.bind(this),e.addEventListener(\"transitionend\",this._onTransitionEnd,!1)}},{key:\"detach\",value:function(){var e=this.el;if(e){var t=this.danmu.config;t&&(t.mouseControl&&e.removeEventListener(\"mouseover\",this.mouseoverFunWrapper,!1),t.mouseEnterControl&&e.removeEventListener(\"mouseenter\",this.mouseEnterFunWrapper,!1)),e.removeEventListener(\"transitionend\",this._onTransitionEnd,!1),this.reuseDOM?this.domObj.unused(e):e.parentNode&&e.parentNode.removeChild(e),this.el=null}this.elPos=void 0,this.danmu.off(\"changeDirection\",this.onChangeDirection)}},{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:\"_onTransitionEnd\",value:function(){this.status=\"end\",this.remove(!1)}},{key:\"topInit\",value:function(){this.logger&&this.logger.info(\"topInit #\"+(this.options.txt||\"[DOM Element]\")+\"#\"),\"b2t\"===this.direction?((0,s.styleUtil)(this.el,\"transformOrigin\",\"left top\"),(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+this.danmu.containerPos.height+\"px) translateZ(0px) rotate(90deg)\"),(0,s.styleUtil)(this.el,\"transition\",\"transform 0s linear 0s\")):(0,s.styleUtil)(this.el,\"top\",this.top+\"px\")}},{key:\"pauseMove\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this;if(\"paused\"!==t.status&&(\"forcedPause\"!==t.status&&(this.status=\"paused\"),t._moveV=void 0,this.el))if(\"scroll\"===this.mode){var n=t.danmu.containerPos;if(e){var i=((new Date).getTime()-t.moveTime)/1e3,o=i*this.moveV,r=0;r=t.moveMoreS-o>=0?\"b2t\"===this.direction?(t.moveMoreS-o)/t.moveContainerHeight*n.height:(t.moveMoreS-o)/t.moveContainerWidth*n.width:t.moveMoreS-o,\"b2t\"===this.direction?(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+r+\"px) translateZ(0px) rotate(90deg)\"):(0,s.styleUtil)(this.el,\"left\",r+\"px\")}else\"b2t\"===this.direction?(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(\"+(this.el.getBoundingClientRect().top-n.top)+\"px) translateZ(0px) rotate(90deg)\"):(0,s.styleUtil)(this.el,\"left\",this.el.getBoundingClientRect().left-n.left+\"px\");\"b2t\"===this.direction||(0,s.styleUtil)(this.el,\"transform\",\"translateX(0px) translateY(0px) translateZ(0px)\"),(0,s.styleUtil)(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){if(this.hasMove||(this.danmu.emit(\"bullet_start\",this),this.hasMove=!0),(\"forcedPause\"!==this.status||e)&&this.el&&\"start\"!==this.status)if(this.status=\"start\",(0,s.styleUtil)(this.el,\"backface-visibility\",\"hidden\"),(0,s.styleUtil)(this.el,\"perspective\",\"500em\"),\"scroll\"===this.mode){var t=this.danmu.containerPos;if(\"b2t\"===this.direction){var n=(this.el.getBoundingClientRect().bottom-t.top)/this.moveV;(0,s.styleUtil)(this.el,\"transition\",\"transform \"+n+\"s linear 0s\"),(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+this.top+\"px) translateY(-\"+this.height+\"px) translateZ(0px) rotate(90deg)\"),this.moveTime=(new Date).getTime(),this.moveMoreS=this.el.getBoundingClientRect().top-t.top,this.moveContainerHeight=t.height}else{if(!this.el)return;var i=this.el.getBoundingClientRect(),o=i.right-t.left,r=o/this.moveV;i.right>t.left?((0,s.styleUtil)(this.el,\"transition\",\"transform \"+r+\"s linear 0s\"),(0,s.styleUtil)(this.el,\"transform\",\"translateX(-\"+o+\"px) translateY(0px) translateZ(0px)\"),this.moveTime=(new Date).getTime(),this.moveMoreS=i.left-t.left,this.moveContainerWidth=t.width):(this.status=\"end\",this.remove())}}else{var a=(new Date).getTime(),l=(this.startTime&&a-this.startTime>this.duration?a-this.startTime:this.duration)/1e3;(0,s.styleUtil)(this.el,\"left\",\"50%\"),(0,s.styleUtil)(this.el,\"margin\",\"0 0 0 -\"+this.width/2+\"px\"),(0,s.styleUtil)(this.el,\"visibility\",\"hidden\"),(0,s.styleUtil)(this.el,\"transition\",\"visibility \"+l+\"s 0s\"),this.pastDuration||(this.pastDuration=1),this.startTime=a}}},{key:\"remove\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.logger&&this.logger.info(\"remove #\"+(this.options.txt||\"[DOM Element]\")+\"#\");var t=this;e&&t.pauseMove(),t.el&&t.el.parentNode&&(t.detach(),this.options.el&&1===this.options.el.nodeType&&this.danmu.config.disableCopyDOM&&(0,s.styleUtil)(this.options.el,\"transform\",\"none\"),t.danmu.emit(\"bullet_remove\",{bullet:t}))}},{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}},{key:\"moveV\",get:function(){var e=this._moveV;if(!e){if(this.options.moveV)e=this.options.moveV;else if(this.elPos){var t=this.danmu.containerPos;e=(\"b2t\"===this.direction?t.height+this.height:t.width+this.width)/this.duration*1e3}e&&(e*=this.danmu.main.playRate,this._moveV=e)}return e}}]),t}(a.default);t.default=u},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(1),a=(i=r)&&i.__esModule?i:{default:i},s=n(0),l=n(31);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)),i=n;return i.setLogger(\"channel\"),i.danmu=e,i.width=0,i.height=0,i.reset(!0),i.direction=e.direction,i.channels=[],i.updatePos(),(0,s.attachEventListener)(n.danmu,\"bullet_remove\",(function(e){i.removeBullet(e.bullet)}),\"destroy\"),(0,s.attachEventListener)(n.danmu,\"changeDirection\",(function(e){i.direction=e}),\"destroy\"),(0,s.attachEventListener)(n.danmu,\"channel_resize\",(function(){i.resize()}),\"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),o(t,[{key:\"destroy\",value:function(){for(var e in this.logger&&this.logger.info(\"destroy\"),this.channels.splice(0,this.channels.length),this._cancelResizeTimer(),this)s.hasOwnProperty.call(this,e)&&delete this[e]}},{key:\"reset\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logger&&this.logger.info(\"reset\");var t=this,n=t.danmu,i=n.container,o=n.bulletBtn;function r(){var e=i.getBoundingClientRect();t.width=e.width,t.height=e.height,t.resetId&&(cancelAnimationFrame(t.resetId),t.resetId=null);var n=t._initChannels(),o=n.channelSize,r=n.channelCount,a=n.channels;t.channelCount=r,t.channels=a,\"b2t\"===t.direction?t.channelWidth=o:t.channelHeight=o}t.container=i,o&&o.main&&o.main.queue.forEach((function(e){e.remove()})),t.channels&&t.channels.length>0&&[\"scroll\",\"top\",\"bottom\"].forEach((function(e){for(var n=0;n<t.channels.length;n++)t.channels[n].queue[e].forEach((function(e){e.remove()}))})),o&&o.main&&o.main.data&&o.main.data.forEach((function(e){e.attached_=!1})),e?this.resetId=requestAnimationFrame(r):r()}},{key:\"getRealOccupyArea\",value:function(){return{width:this.width,height:this.height}}},{key:\"updatePos\",value:function(){var e=this.container.getBoundingClientRect();this.containerPos=e,this.containerWidth=e.width,this.containerHeight=e.height,this.containerTop=e.top,this.containerBottom=e.bottom,this.containerLeft=e.left,this.containerRight=e.right}},{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,h=i.length;c<h;c++)if(i[c].queue[e.mode].some((function(t){return t.id===e.id})))return{result:!1,message:\"exited, channelOrder=\"+c+\",danmu_id=\"+e.id};if(\"scroll\"===e.mode)for(var f=0,d=i.length-a;f<=d;f++){s=!0;for(var p=f;p<f+a;p++){if((l=i[p]).operating.scroll){s=!1;break}if(l.bookId.scroll&&l.bookId.scroll!==e.id){s=!1;break}l.operating.scroll=!0;var g=l.queue.scroll[0];if(g){var m=g.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=void 0,y=g.moveV,b=void 0,_=e.moveV,w=void 0;if(\"b2t\"===t.direction?(b=(v=m.bottom-t.containerTop)/y,w=t.containerHeight+e.random-v):(b=(v=m.right-t.containerLeft)/y,w=t.containerWidth+e.random-v),_>y){var O=w/(_-y);if(n.config.bOffset||(n.config.bOffset=0),b+n.config.bOffset>=O){var k=b*_-t.containerPos.width;k>0&&e.updateOffset(k+(1+Math.ceil(5*Math.random())))}}}l.operating.scroll=!1}if(s){u=f;break}}else if(\"top\"===e.mode)for(var x=0,E=i.length-a;x<=E;x++){s=!0;for(var C=x;C<x+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=x;break}}else if(\"bottom\"===e.mode)for(var j=i.length-a;j>=0;j--){s=!0;for(var M=j;M<j+a;M++){if(M<=Math.floor(i.length/2)){s=!1;break}if((l=i[M]).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=j;break}}if(-1!==u){for(var T=u,L=u+a;T<L;T++)(l=i[T]).operating[e.mode]=!0,l.queue[e.mode].unshift(e),e.prior&&(delete l.bookId[e.mode],t.logger&&t.logger.info(T+\"号轨道恢复正常使用\")),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],e.el.setAttribute(\"data-line-index\",u+1),\"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 P=0,S=-1,z=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>=P&&(P=e.start,S=n,z=e)})),z){z.remove(),t.removeBullet(z),t.danmu.bulletBtn.main.queue.splice(S,1),e.channel_id=z.channel_id;for(var D=z.channel_id[0],I=z.channel_id[0]+z.channel_id[1];D<I;D++)(l=i[D]).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=z.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 R=0,q=i.length-a;R<=q;R++){s=!0;for(var A=R;A<R+a;A++)if(i[A].bookId[e.mode]){s=!1;break}if(s){u=R;break}}if(-1!==u){for(var U=u;U<u+a;U++)i[U].bookId[e.mode]=e.id,t.logger&&t.logger.info(U+\"号轨道被\"+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:\"resizeSync\",value:function(){this.resize(!0)}},{key:\"_initChannels\",value:function(){var e=this.danmu.config,t=e.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12),n=void 0;if(e.area){var i=e.area,o=i.lines,r=i.start,a=i.end;if((0,l.validAreaLineRule)(o))n=o,\"b2t\"===this.direction?this.width=n*t:this.height=n*t;else if(r>=0&&a>=r){var u=a-r;\"b2t\"===this.direction?this.width=Math.floor(this.width*u):this.height=Math.floor(this.height*u)}}(0,s.isNumber)(n)||(n=\"b2t\"===this.direction?Math.floor(this.width/t):Math.floor(this.height/t));for(var c=[],h=0;h<n;h++)c[h]={id:h,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}};return{channelSize:t,channelCount:n,channels:c}}},{key:\"resize\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logger&&this.logger.info(\"resize\");var t=this;function n(e,t){e[t]={id:t,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}}}function i(e,i){function o(n){[\"scroll\",\"top\"].forEach((function(i){t.channels[n].queue[i].forEach((function(t){t.el&&e[n].queue[i].push(t)}))}))}function r(n){t.channels[n].queue.bottom.forEach((function(o){if(o.el&&(e[n+e.length-t.channels.length].queue.bottom.push(o),o.channel_id[0]+o.channel_id[1]-1===n)){var r=[].concat(o.channel_id);o.channel_id=[r[0]-t.channels.length+e.length,r[1]],o.top=o.channel_id[0]*i,t.danmu.config.area&&t.danmu.config.area.start&&(o.top+=t.containerHeight*t.danmu.config.area.start),o.topInit()}}))}for(var a=0;a<t.channels.length;a++)n(e,a),o(a),r(a);for(var s=function(t){[\"scroll\",\"top\",\"bottom\"].forEach((function(n){e[t].queue[n].forEach((function(e){e.resized=!1}))}))},l=0;l<e.length;l++)s(l);t.channels=e,\"b2t\"===t.direction?t.channelWidth=i:t.channelHeight=i}function o(e,i){for(var o=[\"scroll\",\"top\",\"bottom\"],r=function(r){n(e,r),o.forEach((function(n){if(\"top\"===n&&r>Math.floor(e.length/2));else if(\"bottom\"===n&&r<=Math.floor(e.length/2));else{var o=\"bottom\"===n?r-e.length+t.channels.length:r;t.channels[o].queue[n].forEach((function(a,s){if(a.el){if(e[r].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+e.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()}t.channels[o].queue[n].splice(s,1)}}))}}))},a=0;a<e.length;a++)r(a);var s=function(t){o.forEach((function(n){e[t].queue[n].forEach((function(e){e.resized=!1}))}))};for(a=0;a<e.length;a++)s(a);t.channels=e,\"b2t\"===t.direction?t.channelWidth=i:t.channelHeight=i}function r(){var e=t.danmu,n=e.container,r=e.bulletBtn;t.container=n,t.updatePos(),t._cancelResizeTimer(),r.main.data&&r.main.data.forEach((function(e){e.bookChannelId&&(delete e.bookChannelId,t.logger&&t.logger.info(\"resize导致\"+e.id+\"号优先弹幕预定取消\"))})),t.logger&&t.logger.info(\"resize导致所有轨道恢复正常使用\"),t.width=t.containerWidth,t.height=t.containerHeight;var a=t._initChannels(),s=a.channelSize,l=a.channels;t.channels&&(t.channels.length<=l.length?i(l,s):o(l,s)),t.resizing=!1}t.resizing||(t.resizing=!0,e?r():(this._cancelResizeTimer(),this.resizeId=requestAnimationFrame(r)))}},{key:\"_cancelResizeTimer\",value:function(){this.resizeId&&(cancelAnimationFrame(this.resizeId),this.resizeId=null)}}]),t}(a.default);t.default=u,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.validAreaLineRule=function(e){return\"number\"==typeof e&&e>=0&&Number.isInteger(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}}(),o=n(0);var r=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 i(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:\"unused\",value:function(e){var t=this.usingList.indexOf(e);t<0||(this.usingList.splice(t,1),e.style.opacity=0,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)o.hasOwnProperty.call(this,n)&&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?(0,o.styleUtil)(e,\"transform\",\"none\"):e.setAttribute(\"style\",\"\"))}}]),e}();t.default=r,e.exports=t.default},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.destroyObserver=t.unObserver=t.addObserver=void 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=n(0);var r=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((0,o.throttle)((function(e){t.__trigger(e)}),100))}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){r.addObserver(e,t)},t.unObserver=function(e,t){r.unObserver(e,t)},t.destroyObserver=function(e,t){r.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:#fff;-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}\",\"\"])},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,h=[],f=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(b(i.parts[a],t))}else{var s=[];for(a=0;a<i.parts.length;a++)s.push(b(i.parts[a],t));r[i.id]={id:i.id,refs:1,parts:s}}}}function p(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 g(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=h[h.length-1];if(\"top\"===e.insertAt)i?i.nextSibling?n.insertBefore(t,i.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),h.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=h.indexOf(e);t>=0&&h.splice(t,1)}function v(e){var t=document.createElement(\"style\");return void 0===e.attrs.type&&(e.attrs.type=\"text/css\"),y(t,e.attrs),g(e,t),t}function y(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function b(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\",y(t,e.attrs),g(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=p(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(p(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=(_=[],function(e,t){return _[e]=t,_.filter(Boolean).join(\"\\n\")});function O(e,t,n,i){var o=n?\"\":i.css;if(e.styleSheet)e.styleSheet.cssText=w(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=f(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","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 40 40\\\" width=\\\"40\\\" height=\\\"40\\\">\\n <path fill=\\\"#f85959\\\" transform=\\\"scale(0.8 0.8)\\\" d=\\\"M36.5,18.73a1.19,1.19,0,0,0,1-1.14V16.33a1.2,1.2,0,0,0-1-1.13l-.61-.08a1.75,1.75,0,0,1-1.3-.86l-.21-.36-.2-.36A1.72,1.72,0,0,1,34,12l.23-.58a1.18,1.18,0,0,0-.5-1.42l-1.1-.62a1.18,1.18,0,0,0-1.47.3l-.39.51a1.82,1.82,0,0,1-1.41.72c-.44,0-1.88-.27-2.22-.7l-.39-.49a1.18,1.18,0,0,0-1.48-.28l-1.09.64a1.19,1.19,0,0,0-.47,1.43l.25.59a1.87,1.87,0,0,1-.08,1.58c-.26.37-1.17,1.5-1.71,1.58l-.63.09a1.19,1.19,0,0,0-1,1.14l0,1.27a1.17,1.17,0,0,0,1,1.12l.61.08a1.74,1.74,0,0,1,1.3.87l.21.36.2.35A1.69,1.69,0,0,1,24,22.08l-.23.59a1.19,1.19,0,0,0,.5,1.42l1.1.62a1.19,1.19,0,0,0,1.48-.31l.38-.5a1.83,1.83,0,0,1,1.41-.72c.44,0,1.88.25,2.22.69l.39.49a1.18,1.18,0,0,0,1.48.28L33.86,24a1.19,1.19,0,0,0,.47-1.43L34.09,22a1.84,1.84,0,0,1,.07-1.58c.26-.37,1.17-1.5,1.72-1.58ZM31,18.94a2.76,2.76,0,0,1-4.65-1.2A2.71,2.71,0,0,1,27,15.13a2.76,2.76,0,0,1,4.64,1.2A2.7,2.7,0,0,1,31,18.94Z\\\"/>\\n <path fill=\\\"#f85959\\\" transform=\\\"scale(0.8 0.8)\\\" d=\\\"M32,0H3.59A3.59,3.59,0,0,0,0,3.59v17A3.59,3.59,0,0,0,3.59,24.2H19.72a12.59,12.59,0,0,1-.81-1.2A11.73,11.73,0,0,1,35.54,7.28V3.59A3.59,3.59,0,0,0,32,0ZM13,14.18H4.29a1.52,1.52,0,0,1,0-3H13a1.52,1.52,0,0,1,0,3ZM16.45,8H4.29a1.51,1.51,0,0,1,0-3H16.45a1.51,1.51,0,1,1,0,3Z\\\"/>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./danmu.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./danmu.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./danmu.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .danmu-switch{-webkit-order:6;-moz-box-ordinal-group:7;order:6;z-index:26}.xgplayer-skin-default .xgplayer-danmu{display:none;position:absolute;top:0;left:0;right:0;height:100%;overflow:hidden;z-index:9;outline:none;pointer-events:none}.xgplayer-skin-default .xgplayer-danmu>*{position:absolute;white-space:nowrap;z-index:9;pointer-events:auto}.xgplayer-skin-default .xgplayer-danmu.xgplayer-has-danmu{display:block}.xgplayer-skin-default .xgplayer-panel{outline:none;-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:40px;height:40px;display:inline-block;position:relative;font-family:PingFangSC-Regular;font-size:13px;color:hsla(0,0%,100%,.8);z-index:36}.xgplayer-skin-default .xgplayer-panel .xgplayer-panel-icon{cursor:pointer;position:absolute;margin-left:5px;top:10px}.xgplayer-skin-default .xgplayer-panel-active{display:block!important;bottom:30px}.xgplayer-skin-default .xgplayer-panel-slider{z-index:36;display:none;position:absolute;width:230px;height:230px;background:rgba(0,0,0,.54);border-radius:1px;padding:10px 20px;outline:none;left:-115px;bottom:40px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode{padding-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-radio li{display:inline;list-style:none;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode ul{display:-webkit-flex;display:-moz-box;display:flex;-webkit-justify-content:space-around;justify-content:space-around}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode li{margin:0 12px;font-size:11px;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-font{margin-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency{display:block;margin-top:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-progress{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:4px;background:linear-gradient(90deg,#f85959,#f85959 100%,#aaa)}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea{display:block;margin-top:8px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-threequarters,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-twoquarters{margin-left:-6px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-full{margin-right:3px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-full-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-onequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-threequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-twoquarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-zero-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport '../style/controls/pip.scss'\n\nlet s_pip = function () {\n let player = this\n if (!player.config.pip || typeof player.video.requestPictureInPicture !== 'function') { return }\n let pip = player.lang.PIP\n let btn = createDom('xg-pip', `<p class=\"name\"><span>${pip}</span></p>`, {tabindex: 9}, 'xgplayer-pip')\n\n player.once('ready', () => {\n player.controls.appendChild(btn);\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('pipBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_pip',\n method: s_pip\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./pip.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-pip{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-pip .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-pip .name span{width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.lang-is-jp .xgplayer-pip .name span{width:70px;height:20px}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport '../style/controls/miniplayer.scss'\n\nlet s_miniplayer = function () {\n let player = this\n if (!player.config.miniplayer) { return }\n let miniplayer = player.lang.MINIPLAYER\n let btn = createDom('xg-miniplayer', `<p class=\"name\"><span>${miniplayer}</span></p>`, {tabindex: 9}, 'xgplayer-miniplayer')\n\n player.once('ready', () => {\n player.controls.appendChild(btn);\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('miniplayerBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_miniplayer',\n method: s_miniplayer\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./miniplayer.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./miniplayer.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./miniplayer.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-miniplayer{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-miniplayer .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-miniplayer .name span{width:80px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-miniplayer-lay{position:absolute;top:26px;left:0;width:100%;height:100%;z-index:130;cursor:pointer;background-color:transparent;display:none}.xgplayer-skin-default .xgplayer-miniplayer-lay div{width:100%;height:100%}.xgplayer-skin-default .xgplayer-miniplayer-drag{cursor:move;position:absolute;top:0;left:0;width:100%;height:26px;line-height:26px;background-image:linear-gradient(rgba(0,0,0,.3),transparent);z-index:130;display:none}.xgplayer-skin-default .xgplayer-miniplayer-drag .drag-handle{width:100%}.xgplayer-skin-default.xgplayer-miniplayer-active{position:fixed;right:0;bottom:200px;width:320px;height:180px;z-index:110}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-controls,.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-danmu{display:none}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-lay{display:block}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-drag{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-skin-default.xgplayer-inactive .xgplayer-miniplayer-drag{display:none}.lang-is-jp .xgplayer-miniplayer .name span{width:70px;height:20px}\", \"\"]);\n\n// exports\n","import { createDom, addClass } from '../../utils/util'\nimport PlayNextIcon from '../assets/playNext.svg'\nimport '../style/controls/playNext.scss'\n\nlet s_playNext = function () {\n let player = this\n let nextBtn = player.config.playNext\n if (!nextBtn || !nextBtn.urlList) { return }\n let btn = createDom('xg-playnext', `<xg-icon class=\"xgplayer-icon\">${PlayNextIcon}</xg-icon>`, {}, 'xgplayer-playnext')\n let tipsText = player.lang.PLAYNEXT_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-playnext\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-is-enter')\n player.userGestureTrigEvent('playNextBtnClick')\n })\n })\n\n let onUrlListEnd = function () {\n addClass(player.root, 'xgplayer-playnext-inactive')\n }\n player.on('urlListEnd', onUrlListEnd) \n\n function onDestroy () {\n player.off('urlListEnd', onUrlListEnd)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_playNext',\n method: s_playNext\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\">\\n <path transform=\\\"scale(0.038 0.028)\\\" d=\\\"M800 380v768h-128v-352l-320 320v-704l320 320v-352z\\\"></path>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./playNext.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-playnext{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;cursor:pointer;top:-2px}.xgplayer-skin-default .xgplayer-playnext .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-playnext .xgplayer-tips .xgplayer-tip-playnext{display:block}.xgplayer-skin-default .xgplayer-playnext:hover{opacity:.85}.xgplayer-skin-default .xgplayer-playnext:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-playnext .xgplayer-tips{margin-left:-25px}.xgplayer-lang-is-jp .xgplayer-playnext .xgplayer-tips{margin-left:-38px}.xgplayer-skin-default.xgplayer-playnext-inactive .xgplayer-playnext{display:none}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport RotateIcon from '../assets/rotate.svg'\nimport '../style/controls/rotate.scss'\n\nlet s_rotate = function () {\n let player = this\n if (!player.config.rotate) { return }\n let btn = createDom('xg-rotate', `<xg-icon class=\"xgplayer-icon\">${RotateIcon}</xg-icon>`, {}, 'xgplayer-rotate')\n\n let tipsText = player.lang.ROTATE_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-rotate\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('rotateBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_rotate',\n method: s_rotate\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"32\\\" height=\\\"32\\\" viewBox=\\\"0 0 40 40\\\" fill=\\\"none\\\">\\n <g clip-path=\\\"url(#clip0)\\\">\\n <path transform=\\\"scale(1.5 1.5)\\\" d=\\\"M11.6665 9.16663H4.1665C2.78579 9.16663 1.6665 10.2859 1.6665 11.6666V15.8333C1.6665 17.214 2.78579 18.3333 4.1665 18.3333H11.6665C13.0472 18.3333 14.1665 17.214 14.1665 15.8333V11.6666C14.1665 10.2859 13.0472 9.16663 11.6665 9.16663Z\\\" fill=\\\"white\\\"/>\\n <path transform=\\\"scale(1.5 1.5)\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M3.88148 4.06298C3.75371 4.21005 3.67667 4.40231 3.67749 4.61242C3.67847 4.87253 3.79852 5.10435 3.98581 5.25646L6.99111 8.05895C7.32771 8.37283 7.85502 8.35443 8.16891 8.01782C8.48279 7.68122 8.46437 7.15391 8.12778 6.84003L6.62061 5.43457L9.8198 5.4224C9.82848 5.42239 9.8372 5.42221 9.84591 5.4219C10.9714 5.38233 12.0885 5.6285 13.0931 6.13744C14.0976 6.64635 14.957 7.40148 15.5908 8.33234C16.2246 9.2632 16.6122 10.3394 16.7177 11.4606C16.823 12.5819 16.6427 13.7115 16.1934 14.7442C16.0098 15.1661 16.203 15.6571 16.6251 15.8408C17.0471 16.0243 17.5381 15.8311 17.7216 15.4091C18.2833 14.1183 18.5087 12.7063 18.3771 11.3047C18.2453 9.90318 17.7607 8.55792 16.9684 7.39433C16.1761 6.23073 15.1021 5.28683 13.8463 4.65065C12.5946 4.01651 11.203 3.70872 9.80072 3.75583L6.43415 3.76862L7.96326 2.12885C8.27715 1.79225 8.25872 1.26494 7.92213 0.951061C7.58553 0.63718 7.05822 0.655585 6.74433 0.99219L3.90268 4.0395C3.89545 4.04724 3.88841 4.05509 3.88154 4.06303L3.88148 4.06298Z\\\" fill=\\\"white\\\"/>\\n </g>\\n <defs>\\n <clipPath id=\\\"clip0\\\">\\n <rect width=\\\"40\\\" height=\\\"40\\\" fill=\\\"white\\\"/>\\n </clipPath>\\n </defs>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./rotate.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-rotate{position:relative;-webkit-order:10;-moz-box-ordinal-group:11;order:10;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips .xgplayer-tip-rotate{display:block}.xgplayer-skin-default .xgplayer-rotate:hover{opacity:.85}.xgplayer-skin-default .xgplayer-rotate:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-rotate .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-rotate .xgplayer-tips{margin-left:-38px}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport ReloadIcon from '../assets/reload.svg'\nimport '../style/controls/reload.scss'\n\nlet s_reload = function () {\n let player = this\n if (!player.config.reload) { return }\n let btn = createDom('xg-reload', `<xg-icon class=\"xgplayer-icon\">${ReloadIcon}</xg-icon>`, {}, 'xgplayer-reload')\n\n let tipsText = player.lang.RELOAD_TIPS\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-reload\">${tipsText}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('reloadBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_reload',\n method: s_reload\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"28\\\" height=\\\"28\\\" viewBox=\\\"0 0 28 28\\\">\\n <path fill=\\\"#FFF\\\" fill-opacity=\\\"1\\\" fill-rule=\\\"nonzero\\\" d=\\\"M18.17 19.988a7.182 7.182 0 0 1-4.256 1.318 7.806 7.806 0 0 1-.595-.03c-.08-.008-.16-.021-.242-.031a8.004 8.004 0 0 1-.458-.071c-.094-.018-.185-.042-.276-.063a7.743 7.743 0 0 1-.439-.113c-.068-.022-.136-.047-.205-.07a7.03 7.03 0 0 1-.492-.181c-.037-.015-.072-.032-.108-.049a7.295 7.295 0 0 1-.554-.269l-.025-.012a7.347 7.347 0 0 1-2.111-1.753c-.03-.036-.057-.074-.086-.11a7.305 7.305 0 0 1-1.594-4.557h1.686a.123.123 0 0 0 .108-.064.119.119 0 0 0-.006-.125L5.684 9.532a.123.123 0 0 0-.103-.056.123.123 0 0 0-.102.056l-2.834 4.276a.121.121 0 0 0-.005.125c.022.04.064.064.107.064h1.687c0 2.025.627 3.902 1.693 5.454.013.021.022.044.037.066.11.159.233.305.352.455.043.057.085.116.13.171.175.213.36.413.55.61.02.018.036.038.054.055a9.447 9.447 0 0 0 2.91 1.996c.058.026.115.054.175.079.202.084.41.158.619.228.098.034.196.069.296.1.183.054.37.1.558.145.125.029.249.06.376.085.052.01.102.027.155.035.177.032.355.05.533.071.064.007.128.018.19.026.32.03.639.052.956.052a9.46 9.46 0 0 0 5.47-1.746 1.16 1.16 0 0 0 .282-1.608 1.143 1.143 0 0 0-1.6-.283zm5.397-5.991a9.604 9.604 0 0 0-1.685-5.441c-.016-.027-.026-.054-.043-.078-.132-.19-.276-.366-.419-.543-.017-.022-.032-.044-.05-.065a9.467 9.467 0 0 0-3.571-2.7l-.114-.051a11.2 11.2 0 0 0-.673-.248c-.082-.027-.163-.057-.247-.082a9.188 9.188 0 0 0-.6-.156c-.113-.026-.224-.055-.337-.077-.057-.011-.109-.028-.164-.037-.151-.027-.304-.039-.455-.058-.104-.013-.208-.03-.313-.04a10.05 10.05 0 0 0-.759-.039c-.045 0-.09-.007-.136-.007l-.025.003a9.45 9.45 0 0 0-5.46 1.737 1.16 1.16 0 0 0-.284 1.608c.363.523 1.08.65 1.6.284a7.182 7.182 0 0 1 4.222-1.32c.217.002.429.013.639.033.065.007.129.017.193.025.173.021.344.046.513.08.075.014.149.033.221.05.166.037.331.077.494.127l.152.051c.185.061.366.127.545.201l.054.025a7.308 7.308 0 0 1 2.741 2.067l.013.018a7.302 7.302 0 0 1 1.652 4.633h-1.686a.123.123 0 0 0-.108.064.12.12 0 0 0 .006.124l2.834 4.277c.022.033.06.054.103.054.042 0 .08-.021.102-.054l2.833-4.277a.12.12 0 0 0 .005-.124.123.123 0 0 0-.108-.064h-1.685z\\\"/>\\n</svg>\\n\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./reload.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./reload.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./reload.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-reload{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;width:40px;height:40px;cursor:pointer}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips .xgplayer-tip-reload{display:block}.xgplayer-skin-default .xgplayer-reload:hover{opacity:.85}.xgplayer-skin-default .xgplayer-reload:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-reload .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-reload .xgplayer-tips{margin-left:-38px}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport '../style/controls/screenShot.scss'\n\nlet s_screenShot = function () {\n let player = this\n if (!player.config.screenShot || player.config.screenShot.hideButton) {\n return\n }\n let screenShotText = player.lang.SCREENSHOT\n let btn = createDom('xg-screenshot', `<p class=\"name\"><span>${player.config.screenShot.iconText || screenShotText}</span></p>`, {tabindex: 11}, 'xgplayer-screenshot')\n player.once('ready', () => {\n player.controls.appendChild(btn)\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, e => {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('screenShotBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_screenShot',\n method: s_screenShot\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./screenShot.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-screenshot{-webkit-order:11;-moz-box-ordinal-group:12;order:11;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-screenshot .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-screenshot .name span{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:0 10px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-lang-is-en .xgplayer-screenshot .name span,.xgplayer-lang-is-jp .xgplayer-screenshot .name span{width:75px;height:20px}\", \"\"]);\n\n// exports\n","import Player from '../../player'\nimport '../style/controls/textTrack.scss'\n\nlet s_nativeTextTrack = function () {\n if (!this.config.nativeTextTrack) {\n return\n }\n let player = this\n let root = player.root\n let util = Player.util\n let container = util.createDom('xg-texttrack', '', {tabindex: 7}, 'xgplayer-texttrack')\n let list = player.config.nativeTextTrack\n if (list && Array.isArray(list) && list.length > 0) {\n util.addClass(player.root, 'xgplayer-is-texttrack')\n player.once('canplay', function () {\n let tmp = ['<ul>']\n tmp.push(`<li class='${this.textTrackShowDefault ? '' : 'selected'}'}'>${player.lang.OFF}</li>`)\n list.forEach(item => {\n tmp.push(`<li class='${item.default && this.textTrackShowDefault ? 'selected' : ''}'>${item.label}</li>`)\n })\n let controlText = player.lang.TEXTTRACK\n tmp.push(`</ul><p class=\"name\">${controlText}</p>`)\n\n let urlInRoot = root.querySelector('.xgplayer-texttrack')\n if (urlInRoot) {\n urlInRoot.innerHTML = tmp.join('')\n let cur = urlInRoot.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(root, 'xgplayer-texttrack-active')\n urlInRoot.focus()\n })\n }\n } else {\n container.innerHTML = tmp.join('')\n let cur = container.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n util.addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n })\n }\n player.controls.appendChild(container)\n }\n })\n };\n\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let li = e.target || e.srcElement\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n util.removeClass(item, 'selected')\n })\n util.addClass(li, 'selected')\n let trackDoms = player.root.getElementsByTagName('Track')\n if (li.innerHTML === player.lang.OFF) {\n trackDoms[0].track.mode = 'hidden'\n trackDoms[0].src = ''\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n trackDoms[0].style.display = 'block'\n util.addClass(player.root, 'xgplayer-texttrack-active')\n trackDoms[0].track.mode = 'showing'\n\n list.some(item => {\n if (item.label === li.innerHTML) {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n return true\n }\n })\n player.emit('textTrackChange', li.innerHTML)\n }\n } else if (player.config.textTrackActive === 'click' && li && (li.tagName.toLocaleLowerCase() === 'p' || li.tagName.toLocaleLowerCase() === 'em')) {\n util.addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n }\n }, false)\n })\n\n player.on('play', () => {\n let ul = root.querySelector('.xgplayer-texttrack ul')\n let trackDoms = root.getElementsByTagName('Track')\n if (!player['hls'] || !ul || !trackDoms) return\n trackDoms[0].src = ''\n Array.prototype.forEach.call(ul.childNodes, li => {\n if (util.hasClass(li, 'selected')) {\n if (li.innerHTML === player.lang.OFF) {\n trackDoms[0].track.mode = 'hidden'\n trackDoms[0].src = ''\n } else {\n trackDoms[0].track.mode = 'hidden'\n\n list.some(item => {\n if (item.label !== li.innerHTML) {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n return true\n }\n })\n\n list.some(item => {\n if (item.label === li.innerHTML) {\n setTimeout(() => {\n trackDoms[0].src = item.src\n if (item.kind) {\n trackDoms[0].kind = item.kind\n }\n trackDoms[0].label = item.label\n if (item.srclang) {\n trackDoms[0].srclang = item.srclang\n }\n trackDoms[0].track.mode = 'showing'\n })\n return true\n }\n })\n }\n }\n })\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n })\n\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n util.removeClass(player.root, 'xgplayer-texttrack-active')\n })\n}\n\nexport default {\n name: 's_nativeTextTrack',\n method: s_nativeTextTrack\n}\n","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-texttrack{-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-texttrack ul{display:none;list-style:none;min-width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;text-align:center;white-space:nowrap;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-texttrack ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:auto;padding:6px 13px}.xgplayer-skin-default .xgplayer-texttrack ul li.selected,.xgplayer-skin-default .xgplayer-texttrack ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-texttrack .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-texttrack.xgplayer-texttrack-hide{display:none}xg-text-track{transition:bottom .3s ease}.xgplayer-skin-default.xgplayer-is-texttrack .xgplayer-texttrack,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-texttrack ul{display:block}\", \"\"]);\n\n// exports\n","import { createDom, addClass, removeClass, hasClass } from '../../utils/util'\nimport '../style/controls/textTrack.scss'\n\nfunction renderList (root, textTrack, offText, isDefaultShow) {\n if (textTrack.length === 0) {\n root.innerHTML = ''\n return\n }\n let tmp = []\n tmp.push(`<li data-type=\"off\" class=\"${isDefaultShow ? '' : 'selected'}\">${offText}</li>`)\n textTrack.forEach(item => {\n tmp.push(`<li data-id=${item.id} data-language=${item.language} class=\"${item.isDefault && isDefaultShow ? 'selected' : ''}\">${item.label}</li>`)\n })\n root.innerHTML = tmp.join('')\n}\n\n// eslint-disable-next-line camelcase\nlet s_textTrack = function () {\n let player = this\n if (!this.config.textTrack) {\n return\n }\n let textTrack = this.config.textTrack\n let controlText = player.lang.TEXTTRACK\n const container = createDom('xg-texttrack', `<ul></ul><p class=\"name\">${controlText}</p>`, {tabindex: 7}, 'xgplayer-texttrack')\n\n function onCanPlay () {\n const urlInRoot = player.root.querySelector('.xgplayer-texttrack')\n if (!urlInRoot) {\n player.controls.appendChild(container)\n const cur = container.querySelector('.name')\n if (!player.config.textTrackActive || player.config.textTrackActive === 'hover') {\n cur.addEventListener('mouseenter', e => {\n e.preventDefault()\n e.stopPropagation()\n addClass(player.root, 'xgplayer-texttrack-active')\n container.focus()\n })\n container.addEventListener('mouseleave', e => {\n e.preventDefault()\n e.stopPropagation()\n removeClass(player.root, 'xgplayer-texttrack-active')\n })\n } else {\n cur.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n if (hasClass(player.root, 'xgplayer-texttrack-active')) {\n removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n addClass(player.root, 'xgplayer-texttrack-active')\n }\n })\n }\n }\n\n ['touchend', 'click'].forEach(item => {\n container.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n let li = e.target || e.srcElement\n if (li && li.tagName.toLocaleLowerCase() === 'li') {\n const id = li.getAttribute('data-id')\n const type = li.getAttribute('data-type')\n const language = li.getAttribute('data-language')\n Array.prototype.forEach.call(li.parentNode.childNodes, item => {\n removeClass(item, 'selected')\n })\n addClass(li, 'selected')\n if (type === 'off') {\n player.switchOffSubtile()\n removeClass(player.root, 'xgplayer-texttrack-active')\n } else {\n player.switchSubTitle({id, language})\n addClass(player.root, 'xgplayer-texttrack-active')\n }\n }\n })\n })\n\n const ul = container.getElementsByTagName('ul')[0]\n renderList(ul, textTrack, player.lang.OFF, player.textTrackShowDefault)\n if (textTrack.length === 0) {\n addClass(container, 'xgplayer-texttrack-hide')\n } else {\n removeClass(container, 'xgplayer-texttrack-hide')\n }\n }\n\n const onListUpdate = function (data) {\n if (!data.isListUpdate) return\n const ul = container.getElementsByTagName('ul')[0]\n textTrack = data.list\n renderList(ul, data.list, player.lang.OFF, player.textTrackShowDefault)\n data.list.length > 0 ? addClass(player.root, 'xgplayer-is-texttrack') : removeClass(player.root, 'xgplayer-is-texttrack')\n if (data.list.length === 0) {\n addClass(container, 'xgplayer-texttrack-hide')\n } else {\n removeClass(container, 'xgplayer-texttrack-hide')\n }\n }\n\n if (textTrack && Array.isArray(textTrack)) {\n textTrack.length > 0 && addClass(player.root, 'xgplayer-is-texttrack')\n player.once('canplay', onCanPlay)\n player.on('subtitle_change', onListUpdate)\n }\n}\n\nexport default {\n name: 's_textTrack',\n method: s_textTrack\n}\n","import { addClass, removeClass, createDom } from '../../utils/util'\nimport '../style/controls/error.scss'\n\nlet s_error = function () {\n let player = this\n let root = player.root\n\n let error = createDom('xg-error', '<span class=\"xgplayer-error-text\">请<span class=\"xgplayer-error-refresh\">刷新</span>试试</span>', {}, 'xgplayer-error')\n player.once('ready', () => {\n root.appendChild(error)\n });\n\n let text = error.querySelector('.xgplayer-error-text')\n if (player.config.lang && player.config.lang === 'zh-cn') {\n text.innerHTML = player.config.errorTips || `请<span class=\"xgplayer-error-refresh\">刷新</span>试试`\n } else {\n text.innerHTML = player.config.errorTips || `please try to <span class=\"xgplayer-error-refresh\">refresh</span>`\n }\n let refresh = null\n\n function onError () {\n // player.controls.style.display = 'none'\n // if (player.error) {\n // text.innerHTML = player.error\n // } else {\n \n // }\n addClass(player.root, 'xgplayer-is-error')\n refresh = error.querySelector('.xgplayer-error-refresh')\n if (refresh) {\n ['touchend', 'click'].forEach(item => {\n refresh.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.autoplay = true\n let currentTime = player.currentTime\n player.once('playing', () => {\n player.currentTime = currentTime\n removeClass(player.root, 'xgplayer-is-error')\n })\n player.src = player.config.url\n })\n })\n }\n }\n player.on('error', onError)\n function onDestroy () {\n player.off('error', onError)\n player.off('destroy', onDestroy)\n }\n player.once('destroy', onDestroy)\n}\n\nexport default {\n name: 's_error',\n method: s_error\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./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/dist/cjs.js??ref--5-3!./error.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:125;font-family:PingFangSC-Regular;font-size:14px;color:#fff;text-align:center;line-height:100%;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center}.xgplayer-skin-default .xgplayer-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-skin-default .xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px}.xgplayer-skin-default.xgplayer-is-error .xgplayer-error{display:-webkit-flex;display:-moz-box;display:flex}\", \"\"]);\n\n// exports\n","import { createDom, format } from '../../utils/util'\nimport '../style/controls/memoryPlay.scss'\n\nlet s_memoryPlay = function () {\n let player = this\n let lastPlayTime = player.config.lastPlayTime || 0\n let lastPlayTimeHideDelay = player.config.lastPlayTimeHideDelay || 0\n let dom = null\n if (lastPlayTime <= 0) {\n return\n }\n dom = createDom('xg-memoryplay', `<div class=\"xgplayer-memoryplay-spot\"><div class=\"xgplayer-progress-tip\">您上次观看到 <span class=\"xgplayer-lasttime\">${format(lastPlayTime)}</span> ,为您自动续播 <span class=\"btn-close\"><svg viewBox=\"64 64 896 896\" focusable=\"false\" class=\"\" data-icon=\"close\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\"></path></svg></span></div></div>`, {}, 'xgplayer-memoryplay');\n dom.addEventListener('mouseover', (e) => {\n e.stopPropagation();\n });\n const removeFunc = () => {\n dom && dom.parentNode && dom.parentNode.removeChild(dom)\n dom = null\n }\n dom.querySelector('.xgplayer-progress-tip .btn-close').addEventListener('click', removeFunc)\n const handlePlay = () => {\n if(lastPlayTimeHideDelay > 0) {\n player.root.appendChild(dom);\n }\n player.emit('memoryPlayStart', lastPlayTime);\n if (lastPlayTimeHideDelay > 0) {\n setTimeout(() => {\n removeFunc()\n }, lastPlayTimeHideDelay * 1000)\n }\n }\n player.once('playing', handlePlay)\n player.once('ended', removeFunc)\n}\n\nexport default {\n name: 's_memoryPlay',\n method: s_memoryPlay\n}","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./memoryPlay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./memoryPlay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./memoryPlay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-memoryplay-spot{position:absolute;height:32px;left:10px;bottom:46px;background:rgba(0,0,0,.5);border-radius:32px;line-height:32px;color:#ddd;z-index:15;padding:0 32px 0 16px}.xgplayer-skin-default .xgplayer-memoryplay-spot .xgplayer-lasttime{color:red;font-weight:700}.xgplayer-skin-default .xgplayer-memoryplay-spot .btn-close{position:absolute;width:16px;height:16px;right:10px;top:2px;cursor:pointer;color:#fff;font-size:16px}\", \"\"]);\n\n// exports\n","import { createDom } from '../../utils/util'\nimport AirplayIcon from '../assets/airplay.svg'\nimport '../style/controls/airplay.scss'\n\nlet s_airplay = function () {\n let player = this\n if(!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent) return\n\n let btn = createDom('xg-airplay', `<xg-icon class=\"xgplayer-icon\">\n <div class=\"xgplayer-icon-airplay\">${AirplayIcon}</div>\n </xg-icon>`, {}, 'xgplayer-airplay')\n\n let tips = createDom('xg-tips', `<span class=\"xgplayer-tip-airplay\">${player.lang.AIRPLAY_TIPS}</span>`, {}, 'xgplayer-tips')\n btn.appendChild(tips)\n player.once('ready', () => {\n player.controls.appendChild(btn)\n player.video.addEventListener('webkitplaybacktargetavailabilitychanged',\n event => {\n switch (event.availability) {\n case \"available\":\n btn.hidden = false;\n btn.disabled = false;\n break;\n case \"not-available\":\n btn.hidden = true;\n btn.disabled = true;\n break;\n }\n });\n });\n\n ['click', 'touchend'].forEach(item => {\n btn.addEventListener(item, function (e) {\n e.preventDefault()\n e.stopPropagation()\n player.userGestureTrigEvent('airplayBtnClick')\n })\n })\n}\n\nexport default {\n name: 's_airplay',\n method: s_airplay\n}","export default \"<svg t=\\\"1600422191774\\\" class=\\\"icon\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" p-id=\\\"3100\\\" width=\\\"28\\\" height=\\\"28\\\"><path d=\\\"M256 938.666667h512L512 597.333333 256 938.666667z m170.666667-85.333334l85.333333-113.781333L597.333333 853.333333H426.666667zM853.333333 85.333333H170.666667C99.946667 85.333333 42.666667 142.613333 42.666667 213.333333v426.666667c0 70.72 57.28 128 128 128h106.666666l64-85.333333H170.666667c-23.573333 0-42.666667-19.093333-42.666667-42.666667V213.333333c0-23.573333 19.093333-42.666667 42.666667-42.666666h682.666666c23.573333 0 42.666667 19.093333 42.666667 42.666666v426.666667c0 23.573333-19.093333 42.666667-42.666667 42.666667H682.666667l64 85.333333h106.666666c70.72 0 128-57.28 128-128V213.333333c0-70.72-57.28-128-128-128z\\\" p-id=\\\"3101\\\" fill=\\\"#ffffff\\\"></path></svg>\"","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./airplay.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./airplay.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!../../../../../../node_modules/postcss-loader/lib/index.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--5-3!./airplay.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".xgplayer-skin-default .xgplayer-airplay{position:relative;-webkit-order:11;-moz-box-ordinal-group:12;order:11;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon{margin-top:6px;margin-left:6px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon .xgplayer-icon-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips .xgplayer-tip-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay:hover{opacity:.85}.xgplayer-skin-default .xgplayer-airplay:hover .xgplayer-tips{display:block}\", \"\"]);\n\n// exports\n"],"sourceRoot":""}