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/dist/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//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/is-value.js","webpack://xgplayer/./src/error.js","webpack://xgplayer/./src/utils/sniffer.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/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/./src/proxy.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/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/event-emitter/all-off.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/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?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/play.js","webpack://xgplayer/./src/skin/assets/play.svg","webpack://xgplayer/./src/skin/assets/pause.svg","webpack://xgplayer/./src/skin/style/controls/play.scss?e857","webpack://xgplayer/./src/skin/style/controls/play.scss","webpack://xgplayer/./src/skin/controls/poster.js","webpack://xgplayer/./src/skin/style/controls/poster.scss?be24","webpack://xgplayer/./src/skin/style/controls/poster.scss","webpack://xgplayer/./src/skin/controls/flex.js","webpack://xgplayer/./src/skin/style/controls/placeholder.scss?564a","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?12bf","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?c41a","webpack://xgplayer/./src/skin/style/controls/loading.scss","webpack://xgplayer/./src/skin/controls/progress.js","webpack://xgplayer/./src/skin/style/controls/progress.scss?23f1","webpack://xgplayer/./src/skin/style/controls/progress.scss","webpack://xgplayer/./src/skin/controls/time.js","webpack://xgplayer/./src/skin/style/controls/time.scss?0cc8","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?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/eventemitter3/index.js","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/Documents/repository/__git__/bytedance/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/Documents/repository/__git__/bytedance/xgplayer/node_modules/draggabilly/draggabilly.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/controls/pip.js","webpack://xgplayer/./src/controls/playNext.js","webpack://xgplayer/./src/controls/reload.js","webpack://xgplayer/./src/controls/rotate.js","webpack://xgplayer/./src/controls/screenShot.js","webpack://xgplayer/./src/controls/stallCheck.js","webpack://xgplayer/./src/controls/volume.js","webpack://xgplayer/./src/controls/textTrack.js","webpack://xgplayer/./src/skin/index.js","webpack://xgplayer/./src/skin/controls/enter.js","webpack://xgplayer/./src/skin/style/controls/enter.scss?51e2","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?6890","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?ce26","webpack://xgplayer/./src/skin/style/controls/volume.scss","webpack://xgplayer/./src/skin/controls/definition.js","webpack://xgplayer/./src/skin/style/controls/definition.scss?44d9","webpack://xgplayer/./src/skin/style/controls/definition.scss","webpack://xgplayer/./src/skin/controls/playbackRate.js","webpack://xgplayer/./src/skin/style/controls/playbackRate.scss?b22e","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?fd33","webpack://xgplayer/./src/skin/style/controls/download.scss","webpack://xgplayer/./src/skin/controls/danmu.js","webpack://xgplayer//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/danmu.js/dist/index.js","webpack://xgplayer/./src/skin/assets/panel.svg","webpack://xgplayer/./src/skin/style/controls/danmu.scss?63bd","webpack://xgplayer/./src/skin/style/controls/danmu.scss","webpack://xgplayer/./src/skin/controls/pip.js","webpack://xgplayer/./src/skin/style/controls/pip.scss?ca0d","webpack://xgplayer/./src/skin/style/controls/pip.scss","webpack://xgplayer/./src/skin/controls/miniplayer.js","webpack://xgplayer/./src/skin/style/controls/miniplayer.scss?40e7","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?357b","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?2612","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?8b1a","webpack://xgplayer/./src/skin/style/controls/reload.scss","webpack://xgplayer/./src/skin/controls/screenShot.js","webpack://xgplayer/./src/skin/style/controls/screenShot.scss?3979","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?28c3","webpack://xgplayer/./src/skin/style/controls/error.scss","webpack://xgplayer/./src/skin/controls/memoryPlay.js","webpack://xgplayer/./src/skin/style/controls/memoryPlay.scss?bf77","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?6996","webpack://xgplayer/./src/skin/style/controls/airplay.scss","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"],"names":["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","el","tpl","attrs","cname","dom","document","Object","key","value","item","className","reg","sel","charstr","String","len","length","maxlen","Math","chars","r","window","hour","time","minute","second","e","touch","src","dst","url","a","back","Array","node","context","setInterval","intervalFunc","clearInterval","btn","width","w","h","unit","height","Number","name","ua","played","arr","i","begin","end","j","b","watch_dur","object","_fn","fn","maxHoleDuration","buffered","vbuffered","start","diff","buffered_2","buf2len","buf2end","XgplayerTimeRange","style","elem","PresentationMode","PIP","INLINE","FULLSCREEN","video","util","module","exports","useSourceMap","list","toString","map","content","cssWithMappingToString","join","modules","mediaQuery","alreadyImportedModules","id","push","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","source","sourceRoot","concat","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","_undefined","require","val","ErrorTypes","network","code","msg","remark","mse","parse","decoder","runtime","timeout","other","Errors","errd","line","handle","version","errorCode","mediaError","arguments","arg","sniffer","get","navigator","ie","firfox","chrome","opera","safari","isWindowsPhone","isSymbian","isAndroid","isFireFox","isTablet","isPhone","isPc","index","Player","ignores","whitelist","lang","inactive","volume","controls","controlsList","unselectable","onselectstart","type","vid","console","s_i18n","self","fetch","method","headers","Accept","res","obj","evName","evFunc","player","containerSize","setTimeout","playPromise","isDelDom","clearTimeout","classNameList","destroyFunc","_replay","param","defaultUserGestureEventHandler","descriptor","k","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","options","autoplay","playsinline","airplay","tabindex","mediaType","textTrackDom","track","styleStr","wrap","XgVideoProxy","trackDoms","lastBuffer","defaultVideoEventHandler","curBuffer","videoEventHandler","range","currentTime","bool","isTrue","isFinite","err","status","en","cn","rate","posterUrl","poster","vol","d","callable","apply","Function","prototype","call","create","defineProperty","defineProperties","hasOwnProperty","configurable","enumerable","writable","off","emit","methods","descriptors","base","listener","__ee__","__eeOnceListener__","listeners","candidate","splice","l","args","slice","o","isValue","isPlainFunction","assign","normalizeOpts","contains","dscr","c","desc","gs","undefined","isFunction","classRe","functionToString","test","isPrototype","error","isObject","constructor","possibleTypes","foo","bar","trzy","keys","max","dest","forEach","TypeError","process","opts1","result","str","indexOf","searchString","emitter","function","css","location","Error","baseUrl","protocol","host","currentDir","pathname","replace","fixedCss","fullMatch","origUrl","unquotedOrigUrl","trim","$1","newUrl","mobile","root","clk","_click_","clickedTime","first","onTouch","pc","fullscreen","onCanPlay","s_start","StartPlayIcon","StartPauseIcon","onPlayerReady","fullscreenEl","mode","fullscreenPromise","play","replay","s_play","playBtn","PlayIcon","PauseIcon","tipsText","tips","s_poster","s_flex","playceholder","s_fullscreen","fullscreenBtn","RequestFullIcon","ExitFullIcon","s_loading","container","Loading","isRotateFullscreen","s_progress","containerWidth","progress","outer","cache","point","thumbnail","dotItem","dot","dotEvent","text","duration","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","interval","tnailUrls","coverPreviewContainer","coverPreviewPoint","coverPreviewOuter","onLoadedmetadata","events","isRotate","left","move","now","indexInPage","tnaiRowIndex","tnaiColIndex","up","passive","containerLeft","compute","pointWidth","leave","onTimeupdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","onCacheUpdate","cacheUpdateEvents","s_time","onTimeChange","s_replay","replayText","ReplayIcon","path","transform","svg","has","prefix","Events","__proto__","EE","addListener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","names","getOwnPropertySymbols","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","removeAllListeners","prefixed","Airplay","CssFullscreen","Danmu","Definition","Download","ErrorRetryControl","Fullscreen","Keyboard","LocalPreview","MemoryPlay","Miniplayer","Mobile","Pc","Pip","Play","PlayNext","Reload","Replay","Rotate","ScreenShot","StallCheck","Start","Volume","TextTrack","cssFullscreen","danmu","danmujs","definition","download","factory","define","strFileName","strMimeType","defaultMime","mimeType","payload","anchor","createElement","myBlob","Blob","MozBlob","WebKitBlob","fileName","blob","reader","bind","split","pop","href","ajax","XMLHttpRequest","open","responseType","onload","target","response","send","dataUrlToBlob","msSaveBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","parts","atob","decodeURIComponent","binData","uiArr","winMode","setAttribute","innerHTML","display","body","appendChild","click","removeChild","URL","revokeObjectURL","userAgent","confirm","f","createObjectURL","y","FileReader","readAsDataURL","getAbsoluteURL","div","defaultConfig","maxCount","backupUrl","isFetch","fetchTimeout","errorConfig","_inConfig","count","errfTimer","isFetchReturn","resolveFun","resolve","xhr","statusText","_originErrorEmit","errorCount","errorfetch","networkState","readyState","currentSrc","ended","httpCode","httpMsg","retryCanPlay","errorRetry","playbackRate","isRepeat","keyCode","repeat","isBody","config","state","isLonePress","isBack","isLongPress","keyShortcutStep","currentTimeStep","show","isup","volumeStep","keyboard","localPreview","upload","memoryPlay","miniplayer","dragLay","dragHandle","draggie","Draggabilly","getSize","Unidragger","extend","prop","noop","jQuery","element","querySelector","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","position","_getPosition","startPoint","x","dragPoint","startPosition","getComputedStyle","onPointerMove","onPointerUp","enable","setHandles","handles","querySelectorAll","bindHandles","dispatchEvent","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","Event","trigger","_getPositionCoord","top","isNaN","_addTransformPosition","styleSide","measure","parentSize","parentNode","parseFloat","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","classList","add","pointerDown","isOkay","okayPointerDown","isEnabled","_pointerReset","pointerDownPointer","pageX","pageY","preventDefault","pointerDownBlur","_bindPostStartEvents","dragStart","measureContainment","setLeftTop","animate","getContainer","elemSize","elemRect","getBoundingClientRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","isElement","HTMLElement","moveVector","dragMove","dragX","dragY","grid","gridX","gridY","applyGrid","containDrag","axis","drag","rel","min","remove","dragEnd","isDragging","positionDrag","_this","requestAnimationFrame","animateFrame","staticClick","setPosition","disable","destroy","unbindHandles","removeData","_init","bridget","getStyleSize","num","isValid","logError","message","measurements","measurementsLength","getZeroSize","size","innerWidth","innerHeight","outerWidth","outerHeight","measurement","getStyle","isSetup","isBoxSizeOuter","setup","padding","borderStyle","borderWidth","boxSizing","documentElement","round","nodeType","offsetWidth","offsetHeight","isBorderBox","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderHeight","isBorderBoxSizeOuter","styleWidth","styleHeight","Unipointer","_bindHandles","isAdd","bindMethod","touchAction","_touchActionValue","_bindStartEvent","PointerEvent","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","button","submit","image","file","isCursorNode","nodeName","isClickType","focused","activeElement","canBlur","blur","pointerMove","_dragPointerMove","_dragMove","hasDragStarted","_dragStart","abs","pointerUp","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","onclick","isIgnoringMouseUp","getPointerPoint","EvEmitter","bindStartEvent","unbindStartEvent","startEvent","handleEvent","getTouch","touches","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","changedTouches","onpointerdown","isPointerDown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","eventName","addEventListener","_boundPointerEvents","_unbindPostStartEvents","removeEventListener","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","global","onceEvents","_onceEvents","onceListeners","isOnce","allOff","pip","onWebkitpresentationmodechanged","playNext","nextBtn","reload","reloadConfig","rotate","rotateConfig","targetWidth","targetHeight","scale","videoWidth","videoHeight","clockwise","innerRotate","times","factor","screenShot","screenShotOptions","callBack","encoderOptions","canvas","canvasCtx","img","saveScreenShot","saveLink","save","screenShotImg","saveFileName","lastCurrentTime","stallFlag","stallCheckTimer","progressTimer","stallCheck","slider","selected","onVolumeChange","barRect","pos","isMove","onMove","onUp","_changeTimer","containerHeight","defaultStyle","follow","followBottom","fitVideo","offsetBottom","baseSizeX","baseSizeY","minSize","minMobileSize","fontColor","XgSubtitles","subtitle","vBottom","textTrack","defaultOpen","subTitles","SubTitles","subtitles","showDefault","isNeedMove","bottom","textTrackStyle","needRemove","isListUpdate","language","I18n","Enter","Poster","Flex","Progress","Time","PlaybackRate","NativeTextTrack","ErrorControl","s_enter","barStr","enter","s_cssFullscreen","RequestCssFullIcon","ExitCssFullIcon","s_volume","LargeIcon","SmallIcon","MutedIcon","icon","s_definition","paused","tmp","cursrc","urlInRoot","cur","li","from","to","curRUL","liList","definitionObj","s_playbackRate","playbackRateList","selectedSpeed","playbackDom","ev","playbackRateObj","s_localPreview","preview","s_download","DownloadIcon","s_danmu","comments","area","panelBtn","PanelIcon","DanmuJs","focusStatus","focusarray","danmuConfig","hidemodeScroll","hidemodeTop","hidemodeBottom","hidemodeColor","hidemodeArray","transparency","transparencyGradient","transparencyValue","showarea","showareaValue","danmuspeed","danmuspeedValue","danmufont","danmufontValue","t","n","m","Symbol","toStringTag","__esModule","default","p","s","startsWith","getElementById","Node","tagName","attributes","attachEventListener","styleUtil","setProperty","styleCSSText","cssText","isNumber","throttle","some","match","RegExp","logger","u","ReferenceError","getPrototypeOf","setLogger","info","overlap","lines","live","direction","needResizeObserver","dropStaleComments","channelSize","maxCommentsLength","bulletOffset","highScorePriority","hideArr","domObj","freezeId","containerStyle","bulletBtn","main","isReady","addResizeObserver","setPrototypeOf","addObserver","resize","pause","stop","clear","unObserver","txt","opacity","fontSize","prior","realTime","unshift","readData","dataHandle","keepPoolWatermark","queue","pauseMove","startMove","like","setLikeDom","_releaseCtrl","mouseControl","_freezeCtrl","filter","dataElHandle","sortData","forceDuration","playRate","reflow","setFontSize","channel_id","topInit","channel","resizeSync","color","bullets","displayArea","getRealOccupyArea","containerPos","g","v","constructorName","log","defaultOff","switchBtn","playedData","timer","retryStatus","_status","updateQueue","handleId","handleTimer","_cancelDataHandleTimer","bullet","attached_","reset","init","channels","resized","floor","sort","score","updatePos","bulletCreateFail","attach","addBullet","detach","noDiscard","onElDestroy","Bullet","bookChannelId","reuseDOM","disableCopyDOM","eventListeners","useCapture","use","childNodes","textContent","onChangeDirection","random","updateOffset","elPos","moveV","mouseoverFunWrapper","mouseoverFun","mouseEnterControl","mouseEnterFunWrapper","_onTransitionEnd","unused","mouseControlPause","_moveV","Date","getTime","moveTime","moveMoreS","moveContainerHeight","moveContainerWidth","pastDuration","startTime","hasMove","right","outerHTML","removeBullet","_cancelResizeTimer","resetId","cancelAnimationFrame","_initChannels","channelCount","channelWidth","channelHeight","containerTop","containerBottom","containerRight","ceil","operating","scroll","bookId","_","O","bOffset","E","C","M","T","L","P","S","z","D","I","R","q","A","U","loop","validAreaLineRule","resizing","resizeId","isInteger","initDOM","initSize","idleList","usingList","_id","_expand","shift","textcontent","clearElementStyle","destroyObserver","__handlers","ResizeObserver","observer","__trigger","observe","handler","unobserve","disconnect","__runHandler","hmr","insertInto","locals","all","HTMLIFrameElement","contentDocument","head","refs","media","insertAt","nextSibling","insertBefore","firstChild","before","singleton","DEBUG","Boolean","styleSheet","createTextNode","convertToAbsoluteUrls","s_pip","s_miniplayer","s_playNext","PlayNextIcon","onUrlListEnd","s_rotate","RotateIcon","s_reload","ReloadIcon","s_screenShot","screenShotText","s_nativeTextTrack","controlText","ul","isDefaultShow","s_textTrack","renderList","onListUpdate","s_error","refresh","s_memoryPlay","lastPlayTime","lastPlayTimeHideDelay","removeFunc","handlePlay","s_airplay","AirplayIcon","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","_typeof","iterator","obj2","_classCallCheck","instance","Constructor","_defineProperties","props","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","_getPrototypeOf2","o2","_setPrototypeOf2","p2","_isNativeReflectConstruct","Reflect","construct","sham","valueOf","_assertThisInitialized","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","_createSuperInternal","Super","NewTarget","_superPropBase","property","_get","_get2","receiver","_toPrimitive","input","hint","prim","toPrimitive","VTT_CHECK","VTT_STYLE","VTT_CUE","VTT_CUEND","ASS_CHECK","TIME_REGEX_LIST","MAX_COUNT","ASS_FORMAT","ASS_STYLE","ASS_DIALOGUE","getSecond","htmlEncodeAll","getByIndex","SubTitleParser","SubTitleParser2","parseJson","ret","fun","checkFormat","parseASS","parseVTT","styles","parseASSItem","values","textTag","retData","groupCount","lastSubTitle","toLocaleLowerCase","subTitle","group","_lastSubTitle","parseVTTStyle","keyArr","charAt","toUpperCase","isLastSpace","isCueStart","styleInfo","styleHeader","_str","cueMatch","exec","checkIsTime","parseVttTime","_lastSubTitle2","parseVttText","tag","langMatch","retText","newReg","textMatch","tagsReg","re","aArr","bArr","isVTT","isASS","_ERROR","XHR","XHR2","_ref","_ref$method","_ref$type","_ref$timeout","_ref$data","Promise","reject","_method","_data","onerror","ontimeout","onabort","setRequestHeader","ProxyPromise","ProxyPromise2","resolvePromise","rejectPromise","promise","publicPromise","isBreak","reason","orgClassName","getAttribute","findIndexByTime","findCIndexByTime","ids","getItemsByIndex","gid","cids","gList","isMobile","addCSS","preTag","styleTag","getElementsByTagName","func","func2","disabled","textNode","_err3","loadSubTitle","then","data2","catch","_err","checkSubtitle","dist","ResizeObserver2","entries","addObserver2","unObserver2","cr","_this2","contentRect","resizeObserver","EVENTS","RESIZE","CHANGE","UPDATE","formatUrl","IS_MOBILE","Subtitle","_EventEmitter","Subtitle2","_super","_isOpen","_this$player$video","_videoMeta","_onResize","curTime","_getPlayerCurrentTime","_ctime","currentText","updateMode","_liveUpdate","_update","_assertThisInitialize","domRender","Element","_iId","_this$player$video2","__startResize","_onSubtitleSegment","_onSubtitlePlaylist","_onCoreSeiintime","e2","detachPlayer","currentExtText","_cid","_gid","_cids","_iC","debugger","_loadingTrack","lwidth","lheight","vWidth","vHeight","vLeft","attachPlayer","seiTime","lastSeiTime","_curTexts","setSubTitles","isOpen","ieRemoveFirst","innerRoot","switchOff","isDefault","_log","switch","_loadTrack","addStyles","updateSubTitle","_this3","_isCurrent","_loadTrackUrls","_this4","_this$config","_onTimeupdate","_onCoreEvents","_switch","_this5","_updateCurrent","switchOn","nextSubtitle","__removeByTime","_emitPlayerSwitch","_err2","err2","switchExt","_this6","hide","_console","_len2","_key","_this7","contentType","json","stringContent","urls","_pushList","curSubtitle","nextSubTitle","_this8","loadingCount","finally","_freshUrl","_start","_end","_index","i2","_this9","__remove","__loadAll","_this10","getDelCid","oldArr","newArr","includes","getNewCid","_this11","_len","_si","__render","_this12","delCids","newCids","texts","textExt","subtitleList","label","mUrl","urlList","sn","_sub","sei","_this13","_this$config2","_size","mini","_this14","rect","_this15","children","removeIndex","_this16","jsonItems","jsonItem","attr","_len3","_key2","callback","_get3","_len4","_key3","_get4","_len5","_key4","_get5","_len6","_key5","offAll","_this$_videoMeta"],"mappings":"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C;;;;;;AC3ED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,EAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;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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})(this, 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 = 80);\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}","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 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","\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}","'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 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 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","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","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"],"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":["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","el","tpl","attrs","cname","dom","document","Object","key","value","item","className","reg","sel","charstr","String","len","length","maxlen","Math","chars","r","window","hour","time","minute","second","e","touch","src","dst","url","a","back","Array","node","context","setInterval","intervalFunc","clearInterval","btn","width","w","h","unit","height","Number","name","ua","played","arr","i","begin","end","j","b","watch_dur","object","_fn","fn","maxHoleDuration","buffered","vbuffered","start","diff","buffered_2","buf2len","buf2end","XgplayerTimeRange","style","elem","PresentationMode","PIP","INLINE","FULLSCREEN","video","util","module","exports","useSourceMap","list","toString","map","content","cssWithMappingToString","join","modules","mediaQuery","alreadyImportedModules","id","push","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","source","sourceRoot","concat","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","_undefined","require","val","ErrorTypes","network","code","msg","remark","mse","parse","decoder","runtime","timeout","other","Errors","errd","line","handle","version","errorCode","mediaError","arguments","arg","sniffer","get","navigator","ie","firfox","chrome","opera","safari","isWindowsPhone","isSymbian","isAndroid","isFireFox","isTablet","isPhone","isPc","index","Player","ignores","whitelist","lang","inactive","volume","controls","controlsList","unselectable","onselectstart","type","vid","console","s_i18n","self","fetch","method","headers","Accept","res","obj","evName","evFunc","player","containerSize","setTimeout","playPromise","isDelDom","clearTimeout","classNameList","destroyFunc","_replay","param","defaultUserGestureEventHandler","descriptor","k","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","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread2","target","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","typeof","Symbol","iterator","obj2","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","configurable","writable","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","create","_setPrototypeOf","_getPrototypeOf","o","getPrototypeOf","setPrototypeOf","bind","_getPrototypeOf2","o2","__proto__","p","_setPrototypeOf2","p2","_isNativeReflectConstruct","Reflect","construct","sham","Boolean","valueOf","call","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","_createSuperInternal","Super","result","NewTarget","_superPropBase","property","hasOwnProperty","_get","_get2","receiver","base","desc","_toPrimitive","input","hint","prim","toPrimitive","assertThisInitialized","classCallCheck","createClass","createSuper","inherits","isNativeReflectConstruct","objectSpread2","possibleConstructorReturn","superPropBase","toPropertyKey","options","autoplay","playsinline","airplay","tabindex","mediaType","textTrackDom","track","styleStr","wrap","XgVideoProxy","trackDoms","lastBuffer","defaultVideoEventHandler","curBuffer","videoEventHandler","range","currentTime","bool","isTrue","isFinite","err","status","en","cn","rate","posterUrl","poster","vol","d","callable","Function","off","emit","methods","descriptors","listener","__ee__","__eeOnceListener__","listeners","candidate","splice","l","args","slice","isValue","isPlainFunction","assign","normalizeOpts","contains","dscr","c","gs","undefined","isFunction","classRe","functionToString","test","isPrototype","error","isObject","possibleTypes","foo","bar","trzy","max","dest","process","opts1","str","indexOf","searchString","emitter","function","css","location","Error","baseUrl","protocol","host","currentDir","pathname","replace","fixedCss","fullMatch","origUrl","unquotedOrigUrl","trim","$1","newUrl","mobile","root","clk","_click_","clickedTime","first","onTouch","pc","fullscreen","onCanPlay","s_start","StartPlayIcon","StartPauseIcon","onPlayerReady","fullscreenEl","mode","fullscreenPromise","play","replay","s_play","playBtn","PlayIcon","PauseIcon","tipsText","tips","s_poster","s_flex","playceholder","s_fullscreen","fullscreenBtn","RequestFullIcon","ExitFullIcon","s_loading","container","Loading","isRotateFullscreen","s_progress","containerWidth","progress","outer","cache","point","thumbnail","dotItem","dot","dotEvent","text","duration","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","interval","tnailUrls","coverPreviewContainer","coverPreviewPoint","coverPreviewOuter","onLoadedmetadata","events","isRotate","left","move","now","indexInPage","tnaiRowIndex","tnaiColIndex","up","passive","containerLeft","compute","pointWidth","leave","onTimeupdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","onCacheUpdate","cacheUpdateEvents","s_time","onTimeChange","s_replay","replayText","ReplayIcon","path","transform","svg","_ERROR","ret","ProxyPromise","ProxyPromise2","resolvePromise","rejectPromise","promise","Promise","resolve","reject","publicPromise","state","isBreak","reason","default","Airplay","CssFullscreen","Danmu","Definition","Download","ErrorRetryControl","Fullscreen","Keyboard","LocalPreview","MemoryPlay","Miniplayer","Mobile","Pc","Pip","Play","PlayNext","Reload","Replay","Rotate","ScreenShot","StallCheck","Start","Volume","TextTrack","cssFullscreen","danmu","danmujs","definition","download","factory","define","strFileName","strMimeType","defaultMime","mimeType","payload","anchor","createElement","myBlob","Blob","MozBlob","WebKitBlob","fileName","blob","reader","split","pop","href","ajax","XMLHttpRequest","open","responseType","onload","response","send","dataUrlToBlob","msSaveBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","parts","atob","decodeURIComponent","binData","uiArr","winMode","setAttribute","innerHTML","display","body","appendChild","click","removeChild","URL","revokeObjectURL","userAgent","confirm","f","createObjectURL","y","FileReader","readAsDataURL","getAbsoluteURL","div","defaultConfig","maxCount","backupUrl","isFetch","fetchTimeout","errorConfig","_inConfig","count","errfTimer","isFetchReturn","resolveFun","xhr","statusText","_originErrorEmit","errorCount","errorfetch","networkState","readyState","currentSrc","ended","httpCode","httpMsg","retryCanPlay","errorRetry","playbackRate","isRepeat","keyCode","repeat","isBody","config","isLonePress","isBack","isLongPress","keyShortcutStep","currentTimeStep","show","isup","volumeStep","keyboard","localPreview","upload","memoryPlay","miniplayer","dragLay","dragHandle","draggie","Draggabilly","getSize","Unidragger","extend","prop","noop","jQuery","element","querySelector","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","position","_getPosition","startPoint","x","dragPoint","startPosition","getComputedStyle","onPointerMove","onPointerUp","enable","setHandles","handles","querySelectorAll","bindHandles","dispatchEvent","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","Event","trigger","_getPositionCoord","top","isNaN","_addTransformPosition","styleSide","measure","parentSize","parentNode","parseFloat","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","classList","add","pointerDown","isOkay","okayPointerDown","isEnabled","_pointerReset","pointerDownPointer","pageX","pageY","preventDefault","pointerDownBlur","_bindPostStartEvents","dragStart","measureContainment","setLeftTop","animate","getContainer","elemSize","elemRect","getBoundingClientRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","isElement","HTMLElement","moveVector","dragMove","dragX","dragY","grid","gridX","gridY","applyGrid","containDrag","axis","drag","rel","min","remove","dragEnd","isDragging","positionDrag","_this","requestAnimationFrame","animateFrame","staticClick","setPosition","disable","destroy","unbindHandles","removeData","_init","bridget","getStyleSize","num","isValid","logError","message","measurements","measurementsLength","getZeroSize","size","innerWidth","innerHeight","outerWidth","outerHeight","measurement","getStyle","isSetup","isBoxSizeOuter","setup","padding","borderStyle","borderWidth","boxSizing","documentElement","round","nodeType","offsetWidth","offsetHeight","isBorderBox","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderHeight","isBorderBoxSizeOuter","styleWidth","styleHeight","Unipointer","_bindHandles","isAdd","bindMethod","touchAction","_touchActionValue","_bindStartEvent","PointerEvent","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","button","submit","image","file","isCursorNode","nodeName","isClickType","focused","activeElement","canBlur","blur","pointerMove","_dragPointerMove","_dragMove","hasDragStarted","_dragStart","abs","pointerUp","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","onclick","isIgnoringMouseUp","getPointerPoint","EvEmitter","bindStartEvent","unbindStartEvent","startEvent","handleEvent","getTouch","touches","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","changedTouches","onpointerdown","isPointerDown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","eventName","addEventListener","_boundPointerEvents","_unbindPostStartEvents","removeEventListener","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","global","_events","onceEvents","_onceEvents","onceListeners","isOnce","allOff","pip","onWebkitpresentationmodechanged","playNext","nextBtn","reload","reloadConfig","rotate","rotateConfig","targetWidth","targetHeight","scale","videoWidth","videoHeight","clockwise","innerRotate","times","factor","screenShot","screenShotOptions","callBack","encoderOptions","canvas","canvasCtx","img","saveScreenShot","saveLink","save","screenShotImg","saveFileName","lastCurrentTime","stallFlag","stallCheckTimer","progressTimer","stallCheck","slider","selected","onVolumeChange","barRect","pos","isMove","onMove","onUp","_changeTimer","containerHeight","defaultStyle","follow","followBottom","fitVideo","offsetBottom","baseSizeX","baseSizeY","minSize","minMobileSize","fontColor","XgSubtitles","subtitle","vBottom","textTrack","defaultOpen","subTitles","SubTitles","subtitles","showDefault","isNeedMove","bottom","textTrackStyle","needRemove","isListUpdate","language","formatUrl","IS_MOBILE","Subtitle","_EventEmitter","Subtitle2","_super","_isOpen","_this$player$video","_videoMeta","_onResize","curTime","_getPlayerCurrentTime","_ctime","currentText","updateMode","_liveUpdate","_update","_assertThisInitialize","domRender","Element","_iId","_this$player$video2","__startResize","_onSubtitleSegment","_onSubtitlePlaylist","_onCoreSeiintime","e2","detachPlayer","removeAllListeners","currentExtText","_cid","_gid","_cids","_iC","debugger","_loadingTrack","lwidth","lheight","vWidth","vHeight","vLeft","attachPlayer","seiTime","lastSeiTime","_curTexts","setSubTitles","_this2","isOpen","ieRemoveFirst","innerRoot","switchOff","isDefault","_log","switch","catch","_loadTrack","then","addStyles","updateSubTitle","subTitle","_this3","_isCurrent","_loadTrackUrls","styles","_this4","_this$config","color","_onTimeupdate","_onCoreEvents","_switch","_this5","_updateCurrent","switchOn","_err","nextSubtitle","__removeByTime","_emitPlayerSwitch","_err2","err2","_err3","switchExt","_this6","EVENTS","CHANGE","hide","_console","_len2","_key","log","_this7","contentType","json","stringContent","urls","_pushList","curSubtitle","nextSubTitle","_this8","loadingCount","finally","_freshUrl","dist","_start","_end","_index","i2","_this9","__remove","__loadAll","_this10","getDelCid","oldArr","newArr","includes","getNewCid","_this11","_len","_si","__render","_this12","delCids","newCids","texts","textExt","subtitleList","label","mUrl","urlList","sn","_sub","sei","resize","_this13","_this$config2","_size","fontSize","mini","right","RESIZE","_this14","rect","ids","_this15","children","removeIndex","getAttribute","_this16","jsonItems","jsonItem","attr","_len3","_key2","callback","_get3","_len4","_key3","_get4","_len5","_key4","_get5","_len6","_key5","offAll","_this$_videoMeta","EventEmitter","has","prefix","Events","EE","addListener","evt","_eventsCount","clearEvent","eventNames","names","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","prefixed","some","orgClassName","match","RegExp","findIndexByTime","findCIndexByTime","getItemsByIndex","gid","cids","gList","isMobile","addCSS","preTag","cssText","styleTag","head","getElementsByTagName","styleSheet","func","func2","disabled","textNode","createTextNode","SubTitleParser","parseJson","loadSubTitle","XHR","data2","checkSubtitle","VTT_CHECK","VTT_STYLE","VTT_CUE","VTT_CUEND","ASS_CHECK","TIME_REGEX_LIST","MAX_COUNT","ASS_FORMAT","ASS_STYLE","ASS_DIALOGUE","getSecond","isNumber","htmlEncodeAll","getByIndex","SubTitleParser2","fun","checkFormat","parseASS","parseVTT","parseASSItem","values","textTag","retData","groupCount","lastSubTitle","toLocaleLowerCase","group","_lastSubTitle","parseVTTStyle","keyArr","charAt","toUpperCase","isLastSpace","isCueStart","styleInfo","styleHeader","_str","cueMatch","exec","checkIsTime","parseVttTime","_lastSubTitle2","parseVttText","tag","langMatch","retText","newReg","textMatch","tagsReg","re","aArr","bArr","isVTT","isASS","XHR2","_ref","_ref$method","_ref$type","_ref$timeout","_ref$data","R","_method","_data","onerror","ontimeout","onabort","setRequestHeader","ResizeObserver","ResizeObserver2","__handlers","observer","entries","__trigger","addObserver2","handler","observe","unObserver2","unobserve","destroyObserver","disconnect","__runHandler","cr","contentRect","resizeObserver","addObserver","unObserver","UPDATE","I18n","Enter","Poster","Flex","Progress","Time","PlaybackRate","NativeTextTrack","ErrorControl","s_enter","barStr","enter","s_cssFullscreen","RequestCssFullIcon","ExitCssFullIcon","s_volume","LargeIcon","SmallIcon","MutedIcon","icon","s_definition","paused","tmp","cursrc","urlInRoot","cur","li","from","to","curRUL","liList","definitionObj","s_playbackRate","playbackRateList","selectedSpeed","playbackDom","ev","playbackRateObj","s_localPreview","preview","s_download","DownloadIcon","s_danmu","comments","area","panelBtn","PanelIcon","DanmuJs","focusStatus","focusarray","danmuConfig","hidemodeScroll","hidemodeTop","hidemodeBottom","hidemodeColor","hidemodeArray","transparency","transparencyGradient","transparencyValue","showarea","showareaValue","danmuspeed","danmuspeedValue","danmufont","danmufontValue","t","n","m","toStringTag","__esModule","s","startsWith","getElementById","Node","tagName","attributes","attachEventListener","styleUtil","setProperty","styleCSSText","throttle","logger","u","setLogger","info","overlap","lines","live","direction","needResizeObserver","dropStaleComments","channelSize","maxCommentsLength","bulletOffset","highScorePriority","hideArr","domObj","freezeId","containerStyle","bulletBtn","main","isReady","addResizeObserver","pause","stop","clear","txt","opacity","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","bullets","displayArea","getRealOccupyArea","containerPos","g","v","constructorName","defaultOff","switchBtn","playedData","timer","retryStatus","_status","updateQueue","handleId","handleTimer","_cancelDataHandleTimer","bullet","attached_","reset","init","channels","resized","floor","sort","score","updatePos","bulletCreateFail","attach","addBullet","detach","noDiscard","onElDestroy","Bullet","bookChannelId","reuseDOM","disableCopyDOM","eventListeners","useCapture","use","childNodes","textContent","onChangeDirection","random","updateOffset","elPos","moveV","mouseoverFunWrapper","mouseoverFun","mouseEnterControl","mouseEnterFunWrapper","_onTransitionEnd","unused","mouseControlPause","_moveV","Date","getTime","moveTime","moveMoreS","moveContainerHeight","moveContainerWidth","pastDuration","startTime","hasMove","outerHTML","removeBullet","_cancelResizeTimer","resetId","cancelAnimationFrame","_initChannels","channelCount","channelWidth","channelHeight","containerTop","containerBottom","containerRight","ceil","operating","scroll","bookId","_","O","bOffset","E","C","M","T","L","P","S","z","D","I","q","A","U","loop","validAreaLineRule","resizing","resizeId","isInteger","initDOM","initSize","idleList","usingList","_id","_expand","shift","textcontent","clearElementStyle","hmr","insertInto","locals","all","HTMLIFrameElement","contentDocument","refs","media","insertAt","nextSibling","insertBefore","firstChild","before","singleton","DEBUG","convertToAbsoluteUrls","webpackPolyfill","deprecate","paths","s_pip","s_miniplayer","s_playNext","PlayNextIcon","onUrlListEnd","s_rotate","RotateIcon","s_reload","ReloadIcon","s_screenShot","screenShotText","s_nativeTextTrack","controlText","ul","isDefaultShow","s_textTrack","renderList","onListUpdate","s_error","refresh","s_memoryPlay","lastPlayTime","lastPlayTimeHideDelay","removeFunc","handlePlay","s_airplay","AirplayIcon"],"mappings":"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CA,C;;;;;;AC3ED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,EAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AA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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})(this, 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":""}