xgplayer 2.32.5 → 2.32.6

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 (371) hide show
  1. package/browser/controls/airplay.js +1 -1
  2. package/browser/controls/cssFullscreen.js +1 -1
  3. package/browser/controls/danmu.js +3 -1
  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 +9 -7
  14. package/browser/controls/mobile.js +1 -1
  15. package/browser/controls/nativeTextTrack.js +1 -1
  16. package/browser/controls/pc.js +1 -1
  17. package/browser/controls/pip.js +1 -1
  18. package/browser/controls/play.js +1 -1
  19. package/browser/controls/playNext.js +1 -1
  20. package/browser/controls/playbackRate.js +1 -1
  21. package/browser/controls/poster.js +1 -1
  22. package/browser/controls/progress.js +1 -1
  23. package/browser/controls/reload.js +1 -1
  24. package/browser/controls/replay.js +1 -1
  25. package/browser/controls/rotate.js +1 -1
  26. package/browser/controls/screenShot.js +1 -1
  27. package/browser/controls/start.js +1 -1
  28. package/browser/controls/textTrack.js +1 -1
  29. package/browser/controls/time.js +1 -1
  30. package/browser/controls/volume.js +1 -1
  31. package/browser/core_player.js +1 -1
  32. package/browser/core_player.js.map +1 -1
  33. package/browser/index.js +11 -7
  34. package/browser/index.js.map +1 -1
  35. package/browser/simple_player.js +1 -1
  36. package/browser/simple_player.js.map +1 -1
  37. package/dist/controls/airplay.js +1 -1
  38. package/dist/controls/cssFullscreen.js +1 -1
  39. package/dist/controls/danmu.js +3 -1
  40. package/dist/controls/definition.js +1 -1
  41. package/dist/controls/download.js +1 -1
  42. package/dist/controls/enter.js +1 -1
  43. package/dist/controls/error.js +1 -1
  44. package/dist/controls/errorRetry.js +1 -1
  45. package/dist/controls/flex.js +1 -1
  46. package/dist/controls/fullscreen.js +1 -1
  47. package/dist/controls/loading.js +1 -1
  48. package/dist/controls/memoryPlay.js +1 -1
  49. package/dist/controls/miniplayer.js +9 -7
  50. package/dist/controls/mobile.js +1 -1
  51. package/dist/controls/nativeTextTrack.js +1 -1
  52. package/dist/controls/pc.js +1 -1
  53. package/dist/controls/pip.js +1 -1
  54. package/dist/controls/play.js +1 -1
  55. package/dist/controls/playNext.js +1 -1
  56. package/dist/controls/playbackRate.js +1 -1
  57. package/dist/controls/poster.js +1 -1
  58. package/dist/controls/progress.js +1 -1
  59. package/dist/controls/reload.js +1 -1
  60. package/dist/controls/replay.js +1 -1
  61. package/dist/controls/rotate.js +1 -1
  62. package/dist/controls/screenShot.js +1 -1
  63. package/dist/controls/start.js +1 -1
  64. package/dist/controls/textTrack.js +1 -1
  65. package/dist/controls/time.js +1 -1
  66. package/dist/controls/volume.js +1 -1
  67. package/dist/core_player.js +2960 -2889
  68. package/dist/core_player.js.map +1 -1
  69. package/dist/index.js +1938 -3321
  70. package/dist/index.js.map +1 -1
  71. package/dist/index.min.css +1 -0
  72. package/dist/index.min.js +2 -0
  73. package/dist/index.min.js.map +1 -0
  74. package/dist/simple_player.js +274 -281
  75. package/dist/simple_player.js.map +1 -1
  76. package/es/_virtual/_rollupPluginBabelHelpers.js +216 -0
  77. package/es/constant.d.ts +4 -0
  78. package/es/constant.js +5 -0
  79. package/es/controls/airplay.js +1 -1
  80. package/es/controls/cssFullscreen.js +1 -1
  81. package/es/controls/danmu.js +3 -1
  82. package/es/controls/definition.js +1 -1
  83. package/es/controls/download.js +1 -1
  84. package/es/controls/enter.js +1 -1
  85. package/es/controls/error.js +1 -1
  86. package/es/controls/errorRetry.js +1 -1
  87. package/es/controls/flex.js +1 -1
  88. package/es/controls/fullscreen.js +1 -1
  89. package/es/controls/i18n.js +1 -1
  90. package/es/controls/keyboard.js +1 -1
  91. package/es/controls/loading.js +1 -1
  92. package/es/controls/localPreview.js +1 -1
  93. package/es/controls/memoryPlay.js +1 -1
  94. package/es/controls/miniplayer.js +9 -7
  95. package/es/controls/mobile.js +1 -1
  96. package/es/controls/nativeTextTrack.js +1 -1
  97. package/es/controls/pc.js +1 -1
  98. package/es/controls/pip.js +1 -1
  99. package/es/controls/play.js +1 -1
  100. package/es/controls/playNext.js +1 -1
  101. package/es/controls/playbackRate.js +1 -1
  102. package/es/controls/poster.js +1 -1
  103. package/es/controls/progress.js +1 -1
  104. package/es/controls/reload.js +1 -1
  105. package/es/controls/replay.js +1 -1
  106. package/es/controls/rotate.js +1 -1
  107. package/es/controls/screenShot.js +1 -1
  108. package/es/controls/start.js +1 -1
  109. package/es/controls/textTrack.js +1 -1
  110. package/es/controls/time.js +1 -1
  111. package/es/controls/volume.js +1 -1
  112. package/es/core_player.js +1 -1
  113. package/es/core_player.js.map +1 -1
  114. package/es/defaultConfig.d.ts +243 -0
  115. package/es/defaultConfig.js +85 -0
  116. package/es/error.d.ts +114 -0
  117. package/es/error.js +75 -0
  118. package/es/events.d.ts +61 -0
  119. package/es/events.js +62 -0
  120. package/es/icons.d.ts +2 -0
  121. package/es/index.css +499 -0
  122. package/es/index.d.ts +25 -0
  123. package/es/index.js +11 -7
  124. package/es/index.js.map +1 -1
  125. package/es/index.scss +29 -0
  126. package/es/index.umd.d.ts +60 -0
  127. package/es/index.umd.js +30 -0
  128. package/es/lang/en.d.ts +91 -0
  129. package/es/lang/en.js +77 -0
  130. package/es/lang/i18n.d.ts +36 -0
  131. package/es/lang/i18n.js +122 -0
  132. package/es/lang/index.d.ts +2 -0
  133. package/es/lang/jp.d.ts +91 -0
  134. package/es/lang/jp.js +77 -0
  135. package/es/lang/zh-cn.d.ts +91 -0
  136. package/es/lang/zh-cn.js +77 -0
  137. package/es/lang/zh-hk.d.ts +91 -0
  138. package/es/lang/zh-hk.js +77 -0
  139. package/es/mediaProxy.d.ts +334 -0
  140. package/es/mediaProxy.js +623 -0
  141. package/es/player.d.ts +825 -0
  142. package/es/player.js +1945 -0
  143. package/es/plugin/basePlugin.d.ts +180 -0
  144. package/es/plugin/basePlugin.js +259 -0
  145. package/es/plugin/hooksDescriptor.d.ts +60 -0
  146. package/es/plugin/hooksDescriptor.js +149 -0
  147. package/es/plugin/index.d.ts +13 -0
  148. package/es/plugin/plugin.d.ts +207 -0
  149. package/es/plugin/plugin.js +542 -0
  150. package/es/plugin/pluginsManager.d.ts +162 -0
  151. package/es/plugin/pluginsManager.js +362 -0
  152. package/es/plugin/preset.d.ts +1 -0
  153. package/es/plugin/preset.js +28 -0
  154. package/es/plugin/resizeObserver.d.ts +3 -0
  155. package/es/plugin/resizeObserver.js +108 -0
  156. package/es/plugins/assets/back.js +4 -0
  157. package/es/plugins/assets/download.js +4 -0
  158. package/es/plugins/assets/exitCssFull.js +4 -0
  159. package/es/plugins/assets/exitFull.js +4 -0
  160. package/es/plugins/assets/loading.js +4 -0
  161. package/es/plugins/assets/panel.js +4 -0
  162. package/es/plugins/assets/pause.js +4 -0
  163. package/es/plugins/assets/pipIcon.js +4 -0
  164. package/es/plugins/assets/pipIconExit.js +4 -0
  165. package/es/plugins/assets/play.js +4 -0
  166. package/es/plugins/assets/playNext.js +4 -0
  167. package/es/plugins/assets/replay.js +4 -0
  168. package/es/plugins/assets/requestCssFull.js +7 -0
  169. package/es/plugins/assets/requestFull.js +4 -0
  170. package/es/plugins/assets/rotate.js +4 -0
  171. package/es/plugins/assets/seekicon.js +4 -0
  172. package/es/plugins/assets/volumeLarge.js +4 -0
  173. package/es/plugins/assets/volumeMuted.js +4 -0
  174. package/es/plugins/assets/volumeSmall.js +4 -0
  175. package/es/plugins/common/iconPlugin.d.ts +5 -0
  176. package/es/plugins/common/iconPlugin.js +42 -0
  177. package/es/plugins/common/iconTools.d.ts +1 -0
  178. package/es/plugins/common/iconTools.js +8 -0
  179. package/es/plugins/common/index.scss +2 -0
  180. package/es/plugins/common/optionList.d.ts +15 -0
  181. package/es/plugins/common/optionList.js +120 -0
  182. package/es/plugins/common/optionsIcon.d.ts +40 -0
  183. package/es/plugins/common/optionsIcon.js +304 -0
  184. package/es/plugins/common/optionsIcon.scss +154 -0
  185. package/es/plugins/common/thumbnail.d.ts +62 -0
  186. package/es/plugins/common/thumbnail.js +191 -0
  187. package/es/plugins/common/thumbnail.scss +27 -0
  188. package/es/plugins/controls/index.css +132 -0
  189. package/es/plugins/controls/index.d.ts +73 -0
  190. package/es/plugins/controls/index.js +189 -0
  191. package/es/plugins/controls/index.scss +204 -0
  192. package/es/plugins/cssFullScreen/index.css +12 -0
  193. package/es/plugins/cssFullScreen/index.d.ts +40 -0
  194. package/es/plugins/cssFullScreen/index.js +136 -0
  195. package/es/plugins/cssFullScreen/index.scss +19 -0
  196. package/es/plugins/danmu/danmuIcon.d.ts +24 -0
  197. package/es/plugins/danmu/danmuIcon.js +98 -0
  198. package/es/plugins/danmu/danmuPanel.d.ts +39 -0
  199. package/es/plugins/danmu/danmuPanel.js +81 -0
  200. package/es/plugins/danmu/index.css +603 -0
  201. package/es/plugins/danmu/index.d.ts +96 -0
  202. package/es/plugins/danmu/index.js +313 -0
  203. package/es/plugins/danmu/index.scss +356 -0
  204. package/es/plugins/definition/index.css +4 -0
  205. package/es/plugins/definition/index.d.ts +38 -0
  206. package/es/plugins/definition/index.js +164 -0
  207. package/es/plugins/definition/index.scss +4 -0
  208. package/es/plugins/download/index.css +13 -0
  209. package/es/plugins/download/index.d.ts +31 -0
  210. package/es/plugins/download/index.js +107 -0
  211. package/es/plugins/download/index.scss +22 -0
  212. package/es/plugins/dynamicBg/index.css +16 -0
  213. package/es/plugins/dynamicBg/index.d.ts +83 -0
  214. package/es/plugins/dynamicBg/index.js +316 -0
  215. package/es/plugins/dynamicBg/index.scss +19 -0
  216. package/es/plugins/enter/index.css +104 -0
  217. package/es/plugins/enter/index.d.ts +19 -0
  218. package/es/plugins/enter/index.js +46 -0
  219. package/es/plugins/enter/index.scss +78 -0
  220. package/es/plugins/error/index.css +29 -0
  221. package/es/plugins/error/index.d.ts +8 -0
  222. package/es/plugins/error/index.js +75 -0
  223. package/es/plugins/error/index.scss +34 -0
  224. package/es/plugins/fpsDetect/index.d.ts +34 -0
  225. package/es/plugins/fpsDetect/index.js +149 -0
  226. package/es/plugins/fullscreen/backicon.d.ts +17 -0
  227. package/es/plugins/fullscreen/backicon.js +72 -0
  228. package/es/plugins/fullscreen/index.css +23 -0
  229. package/es/plugins/fullscreen/index.d.ts +58 -0
  230. package/es/plugins/fullscreen/index.js +202 -0
  231. package/es/plugins/fullscreen/index.scss +35 -0
  232. package/es/plugins/gapJump/index.d.ts +21 -0
  233. package/es/plugins/gapJump/index.js +142 -0
  234. package/es/plugins/keyboard/index.d.ts +89 -0
  235. package/es/plugins/keyboard/index.js +421 -0
  236. package/es/plugins/loading/index.css +58 -0
  237. package/es/plugins/loading/index.d.ts +11 -0
  238. package/es/plugins/loading/index.js +43 -0
  239. package/es/plugins/loading/index.scss +70 -0
  240. package/es/plugins/logger/index.d.ts +54 -0
  241. package/es/plugins/logger/index.js +311 -0
  242. package/es/plugins/miniScreen/index.css +179 -0
  243. package/es/plugins/miniScreen/index.d.ts +68 -0
  244. package/es/plugins/miniScreen/index.js +212 -0
  245. package/es/plugins/miniScreen/index.scss +198 -0
  246. package/es/plugins/miniScreen/miniScreenIcon.d.ts +11 -0
  247. package/es/plugins/miniScreen/miniScreenIcon.js +56 -0
  248. package/es/plugins/mobile/index.css +181 -0
  249. package/es/plugins/mobile/index.d.ts +125 -0
  250. package/es/plugins/mobile/index.js +631 -0
  251. package/es/plugins/mobile/index.scss +180 -0
  252. package/es/plugins/mobile/touch.d.ts +43 -0
  253. package/es/plugins/mobile/touch.js +214 -0
  254. package/es/plugins/netAdaption/index.d.ts +5 -0
  255. package/es/plugins/pc/index.css +3 -0
  256. package/es/plugins/pc/index.d.ts +14 -0
  257. package/es/plugins/pc/index.js +199 -0
  258. package/es/plugins/pc/index.scss +5 -0
  259. package/es/plugins/pip/index.css +12 -0
  260. package/es/plugins/pip/index.d.ts +37 -0
  261. package/es/plugins/pip/index.js +222 -0
  262. package/es/plugins/pip/index.scss +21 -0
  263. package/es/plugins/play/index.css +12 -0
  264. package/es/plugins/play/index.d.ts +23 -0
  265. package/es/plugins/play/index.js +127 -0
  266. package/es/plugins/play/index.scss +18 -0
  267. package/es/plugins/playNext/index.css +22 -0
  268. package/es/plugins/playNext/index.d.ts +19 -0
  269. package/es/plugins/playNext/index.js +104 -0
  270. package/es/plugins/playNext/index.scss +35 -0
  271. package/es/plugins/playbackRate/index.css +4 -0
  272. package/es/plugins/playbackRate/index.d.ts +31 -0
  273. package/es/plugins/playbackRate/index.js +140 -0
  274. package/es/plugins/playbackRate/index.scss +6 -0
  275. package/es/plugins/poster/index.css +39 -0
  276. package/es/plugins/poster/index.d.ts +27 -0
  277. package/es/plugins/poster/index.js +109 -0
  278. package/es/plugins/poster/index.scss +56 -0
  279. package/es/plugins/progress/index.css +234 -0
  280. package/es/plugins/progress/index.d.ts +178 -0
  281. package/es/plugins/progress/index.js +687 -0
  282. package/es/plugins/progress/index.scss +288 -0
  283. package/es/plugins/progress/innerList.d.ts +49 -0
  284. package/es/plugins/progress/innerList.js +285 -0
  285. package/es/plugins/progress/miniProgress.d.ts +9 -0
  286. package/es/plugins/progress/miniProgress.js +55 -0
  287. package/es/plugins/progressPreview/dotsApi.d.ts +1 -0
  288. package/es/plugins/progressPreview/dotsApi.js +269 -0
  289. package/es/plugins/progressPreview/index.css +190 -0
  290. package/es/plugins/progressPreview/index.d.ts +87 -0
  291. package/es/plugins/progressPreview/index.js +475 -0
  292. package/es/plugins/progressPreview/index.scss +235 -0
  293. package/es/plugins/prompt/index.css +47 -0
  294. package/es/plugins/prompt/index.d.ts +24 -0
  295. package/es/plugins/prompt/index.js +110 -0
  296. package/es/plugins/prompt/index.scss +53 -0
  297. package/es/plugins/replay/index.css +33 -0
  298. package/es/plugins/replay/index.d.ts +16 -0
  299. package/es/plugins/replay/index.js +109 -0
  300. package/es/plugins/replay/index.scss +41 -0
  301. package/es/plugins/rotate/index.css +0 -0
  302. package/es/plugins/rotate/index.d.ts +22 -0
  303. package/es/plugins/rotate/index.js +148 -0
  304. package/es/plugins/rotate/index.scss +0 -0
  305. package/es/plugins/rotate/index2.js +2 -0
  306. package/es/plugins/screenShot/index.css +3 -0
  307. package/es/plugins/screenShot/index.d.ts +30 -0
  308. package/es/plugins/screenShot/index.js +178 -0
  309. package/es/plugins/screenShot/index.scss +5 -0
  310. package/es/plugins/start/index.css +91 -0
  311. package/es/plugins/start/index.d.ts +41 -0
  312. package/es/plugins/start/index.js +267 -0
  313. package/es/plugins/start/index.scss +115 -0
  314. package/es/plugins/stats/index.d.ts +38 -0
  315. package/es/plugins/stats/index.js +194 -0
  316. package/es/plugins/testspeed/index.d.ts +26 -0
  317. package/es/plugins/testspeed/index.js +207 -0
  318. package/es/plugins/time/index.css +46 -0
  319. package/es/plugins/time/index.d.ts +28 -0
  320. package/es/plugins/time/index.js +225 -0
  321. package/es/plugins/time/index.scss +57 -0
  322. package/es/plugins/time/timesegments.d.ts +24 -0
  323. package/es/plugins/time/timesegments.js +216 -0
  324. package/es/plugins/track/index.css +91 -0
  325. package/es/plugins/track/index.d.ts +132 -0
  326. package/es/plugins/track/index.js +463 -0
  327. package/es/plugins/track/index.scss +111 -0
  328. package/es/plugins/track/nativeSubTitle.d.ts +22 -0
  329. package/es/plugins/track/nativeSubTitle.js +94 -0
  330. package/es/plugins/volume/index.css +95 -0
  331. package/es/plugins/volume/index.d.ts +88 -0
  332. package/es/plugins/volume/index.js +319 -0
  333. package/es/plugins/volume/index.scss +124 -0
  334. package/es/plugins/waitingTimeoutJump/index.d.ts +15 -0
  335. package/es/plugins/waitingTimeoutJump/index.js +88 -0
  336. package/es/presets/default-en.d.ts +33 -0
  337. package/es/presets/default-en.js +63 -0
  338. package/es/presets/default.d.ts +34 -0
  339. package/es/presets/default.js +70 -0
  340. package/es/presets/index.d.ts +4 -0
  341. package/es/presets/live.d.ts +94 -0
  342. package/es/presets/live.js +39 -0
  343. package/es/presets/mobile.d.ts +103 -0
  344. package/es/presets/mobile.js +34 -0
  345. package/es/simple_player.js +1 -1
  346. package/es/simple_player.js.map +1 -1
  347. package/es/state.d.ts +11 -0
  348. package/es/state.js +12 -0
  349. package/es/stateClassMap.d.ts +32 -0
  350. package/es/stateClassMap.js +32 -0
  351. package/es/style/common/animation.scss +16 -0
  352. package/es/style/common/svg-url.scss +70 -0
  353. package/es/style/common.scss +457 -0
  354. package/es/style/index.scss +4 -0
  355. package/es/style/variable.scss +76 -0
  356. package/es/utils/database.d.ts +31 -0
  357. package/es/utils/database.js +107 -0
  358. package/es/utils/debug.d.ts +10 -0
  359. package/es/utils/debug.js +43 -0
  360. package/es/utils/draggabilly.d.ts +54 -0
  361. package/es/utils/draggabilly.js +410 -0
  362. package/es/utils/sniffer.d.ts +28 -0
  363. package/es/utils/sniffer.js +150 -0
  364. package/es/utils/url.d.ts +1 -0
  365. package/es/utils/util.d.ts +304 -0
  366. package/es/utils/util.js +827 -0
  367. package/es/utils/xgplayerTimeRange.d.ts +7 -0
  368. package/es/utils/xgplayerTimeRange.js +25 -0
  369. package/es/version.d.ts +2 -0
  370. package/es/version.js +2 -0
  371. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://Player/webpack/bootstrap","webpack://Player/./src/utils/util.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/css-loader/lib/css-base.js","webpack://Player/./node_modules/style-loader/lib/addStyles.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/is-value.js","webpack://Player/./src/error.js","webpack://Player/./src/utils/sniffer.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/value/is.js","webpack://Player/./src/utils/xgplayerTimeRange.js","webpack://Player/./src/player.js","webpack://Player/./src/skin/controls/i18n.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/_virtual/_rollupPluginBabelHelpers.js","webpack://Player/./src/proxy.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/event-emitter/index.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/d/index.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/plain-function/is.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/function/is.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/prototype/is.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/type/object/is.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/assign/index.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/assign/is-implemented.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/assign/shim.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/keys/index.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/keys/is-implemented.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/keys/shim.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/function/noop.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/valid-value.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/normalize-options.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/string/#/contains/index.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/string/#/contains/shim.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/valid-callable.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/event-emitter/all-off.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/valid-object.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/es5-ext/object/is-object.js","webpack://Player/./src/skin/style/index.scss?b29b","webpack://Player/./src/skin/style/index.scss","webpack://Player/./node_modules/style-loader/lib/urls.js","webpack://Player/./src/controls/mobile.js","webpack://Player/./src/controls/pc.js","webpack://Player/./src/controls/start.js","webpack://Player/./src/skin/controls/start.js","webpack://Player/./src/skin/assets/startPlay.svg","webpack://Player/./src/skin/assets/startPause.svg","webpack://Player/./src/skin/style/controls/start.scss?f3eb","webpack://Player/./src/skin/style/controls/start.scss","webpack://Player/./src/controls/fullscreen.js","webpack://Player/./src/controls/play.js","webpack://Player/./src/controls/replay.js","webpack://Player/./src/skin/controls/play.js","webpack://Player/./src/skin/assets/play.svg","webpack://Player/./src/skin/assets/pause.svg","webpack://Player/./src/skin/style/controls/play.scss?1b61","webpack://Player/./src/skin/style/controls/play.scss","webpack://Player/./src/skin/controls/poster.js","webpack://Player/./src/skin/style/controls/poster.scss?525c","webpack://Player/./src/skin/style/controls/poster.scss","webpack://Player/./src/skin/controls/flex.js","webpack://Player/./src/skin/style/controls/placeholder.scss?98c9","webpack://Player/./src/skin/style/controls/placeholder.scss","webpack://Player/./src/skin/controls/fullscreen.js","webpack://Player/./src/skin/assets/requestFull.svg","webpack://Player/./src/skin/assets/exitFull.svg","webpack://Player/./src/skin/style/controls/fullscreen.scss?9263","webpack://Player/./src/skin/style/controls/fullscreen.scss","webpack://Player/./src/skin/controls/loading.js","webpack://Player/./src/skin/assets/loading.svg","webpack://Player/./src/skin/style/controls/loading.scss?804e","webpack://Player/./src/skin/style/controls/loading.scss","webpack://Player/./src/skin/controls/progress.js","webpack://Player/./src/skin/style/controls/progress.scss?dac3","webpack://Player/./src/skin/style/controls/progress.scss","webpack://Player/./src/skin/controls/time.js","webpack://Player/./src/skin/style/controls/time.scss?e80e","webpack://Player/./src/skin/style/controls/time.scss","webpack://Player/./src/skin/controls/replay.js","webpack://Player/./src/skin/assets/replay.svg","webpack://Player/./src/skin/style/controls/replay.scss?2924","webpack://Player/./src/skin/style/controls/replay.scss","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/error.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/proxyPromise.js","webpack://Player/./src/skin/style/controls/textTrack.scss?0744","webpack://Player/./src/index.js","webpack://Player/./src/controls/airplay.js","webpack://Player/./src/controls/cssFullscreen.js","webpack://Player/./src/controls/danmu.js","webpack://Player/./src/controls/definition.js","webpack://Player/./src/controls/download.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/downloadjs/download.js","webpack://Player/./src/utils/url.js","webpack://Player/./src/controls/errorRetry.js","webpack://Player/./src/controls/keyboard.js","webpack://Player/./src/controls/localPreview.js","webpack://Player/./src/controls/memoryPlay.js","webpack://Player/./src/controls/miniplayer.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/draggabilly/draggabilly.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/get-size/get-size.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/unidragger/unidragger.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/unipointer/unipointer.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/ev-emitter/ev-emitter.js","webpack://Player/./src/controls/pip.js","webpack://Player/./src/controls/playNext.js","webpack://Player/./src/controls/reload.js","webpack://Player/./src/controls/rotate.js","webpack://Player/./src/controls/screenShot.js","webpack://Player/./src/controls/stallCheck.js","webpack://Player/./src/controls/volume.js","webpack://Player/./src/controls/textTrack.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/index.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/eventemitter3/index.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/utils.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/parser.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/xhr.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/observer.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/xgplayer-subtitles/es/constants.js","webpack://Player/./src/skin/index.js","webpack://Player/./src/skin/controls/enter.js","webpack://Player/./src/skin/style/controls/enter.scss?e536","webpack://Player/./src/skin/style/controls/enter.scss","webpack://Player/./src/skin/controls/cssFullscreen.js","webpack://Player/./src/skin/assets/requestCssFull.svg","webpack://Player/./src/skin/assets/exitCssFull.svg","webpack://Player/./src/skin/style/controls/cssfullscreen.scss?d6c9","webpack://Player/./src/skin/style/controls/cssfullscreen.scss","webpack://Player/./src/skin/controls/volume.js","webpack://Player/./src/skin/assets/volumeMuted.svg","webpack://Player/./src/skin/assets/volumeSmall.svg","webpack://Player/./src/skin/assets/volumeLarge.svg","webpack://Player/./src/skin/style/controls/volume.scss?f859","webpack://Player/./src/skin/style/controls/volume.scss","webpack://Player/./src/skin/controls/definition.js","webpack://Player/./src/skin/style/controls/definition.scss?1aa0","webpack://Player/./src/skin/style/controls/definition.scss","webpack://Player/./src/skin/controls/playbackRate.js","webpack://Player/./src/skin/style/controls/playbackRate.scss?199b","webpack://Player/./src/skin/style/controls/playbackRate.scss","webpack://Player/./src/skin/controls/localPreview.js","webpack://Player/./src/skin/controls/download.js","webpack://Player/./src/skin/assets/download.svg","webpack://Player/./src/skin/style/controls/download.scss?8a91","webpack://Player/./src/skin/style/controls/download.scss","webpack://Player/./src/skin/controls/danmu.js","webpack://Player//Users/bytedance/Desktop/work/v2/xgplayer/node_modules/danmu.js/dist/index.js","webpack://Player/(webpack)/buildin/module.js","webpack://Player/./src/skin/assets/panel.svg","webpack://Player/./src/skin/style/controls/danmu.scss?a4e4","webpack://Player/./src/skin/style/controls/danmu.scss","webpack://Player/./src/skin/controls/pip.js","webpack://Player/./src/skin/style/controls/pip.scss?7c22","webpack://Player/./src/skin/style/controls/pip.scss","webpack://Player/./src/skin/controls/miniplayer.js","webpack://Player/./src/skin/style/controls/miniplayer.scss?5449","webpack://Player/./src/skin/style/controls/miniplayer.scss","webpack://Player/./src/skin/controls/playNext.js","webpack://Player/./src/skin/assets/playNext.svg","webpack://Player/./src/skin/style/controls/playNext.scss?f2e9","webpack://Player/./src/skin/style/controls/playNext.scss","webpack://Player/./src/skin/controls/rotate.js","webpack://Player/./src/skin/assets/rotate.svg","webpack://Player/./src/skin/style/controls/rotate.scss?68c2","webpack://Player/./src/skin/style/controls/rotate.scss","webpack://Player/./src/skin/controls/reload.js","webpack://Player/./src/skin/assets/reload.svg","webpack://Player/./src/skin/style/controls/reload.scss?5e61","webpack://Player/./src/skin/style/controls/reload.scss","webpack://Player/./src/skin/controls/screenShot.js","webpack://Player/./src/skin/style/controls/screenShot.scss?548f","webpack://Player/./src/skin/style/controls/screenShot.scss","webpack://Player/./src/skin/controls/nativeTextTrack.js","webpack://Player/./src/skin/style/controls/textTrack.scss","webpack://Player/./src/skin/controls/textTrack.js","webpack://Player/./src/skin/controls/error.js","webpack://Player/./src/skin/style/controls/error.scss?e5b6","webpack://Player/./src/skin/style/controls/error.scss","webpack://Player/./src/skin/controls/memoryPlay.js","webpack://Player/./src/skin/style/controls/memoryPlay.scss?c195","webpack://Player/./src/skin/style/controls/memoryPlay.scss","webpack://Player/./src/skin/controls/airplay.js","webpack://Player/./src/skin/assets/airplay.svg","webpack://Player/./src/skin/style/controls/airplay.scss?87e1","webpack://Player/./src/skin/style/controls/airplay.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","createDom","hasClass","addClass","removeClass","toggleClass","findDom","padStart","format","event","typeOf","deepCopy","getBgImage","copyDom","_setInterval","_clearInterval","createImgBtn","isWeiXin","isUc","computeWatchDur","offInDestroy","on","once","getBuffered2","checkIsBrowser","setStyle","checkWebkitSetPresentationMode","video","el","tpl","attrs","cname","dom","document","item","className","Array","some","RegExp","reg","sel","e","str","length","pad","charstr","String","len","maxlen","Math","chars","time","window","hour","minute","second","touch","obj","dst","src","url","a","back","node","context","eventName","intervalFunc","frequency","setInterval","clearInterval","imgUrl","width","height","btn","w","h","unit","Number","ua","played","arr","begin","end","j","b","watch_dur","fn","offEvent","_fn","data","vbuffered","maxHoleDuration","buffered","start","diff","buffered_2","buf2len","buf2end","XgplayerTimeRange","elem","style","error","PresentationMode","PIP","INLINE","FULLSCREEN","util","useSourceMap","list","toString","this","map","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","id","push","memo","stylesInDom","isOldIE","all","atob","apply","arguments","getTarget","target","querySelector","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","indexOf","splice","createStyleElement","createElement","type","addAttrs","keys","forEach","setAttribute","update","remove","result","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","href","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","autoFixUrls","undefined","convertToAbsoluteUrls","blob","oldSrc","_undefined","require","val","ErrorTypes","network","code","msg","remark","mse","parse","decoder","runtime","timeout","other","errd","line","handle","version","errorCode","mediaError","arg","sniffer","navigator","ie","firfox","chrome","opera","safari","isWindowsPhone","test","isSymbian","isAndroid","isFireFox","isTablet","isPhone","isPc","bufferedList","Player","ignores","whitelist","lang","inactive","volume","controls","controlsList","unselectable","onselectstart","Errors","vid","console","s_i18n","self","fetch","method","headers","Accept","res","err","evName","evFunc","player","videoWidth","containerSize","videoHeight","setTimeout","nodeType","root","config","playPromise","isDelDom","_interval","classNameList","split","clearTimeout","keyShortcut","destroyFunc","_replay","param","defaultUserGestureEventHandler","userGestureEventMiddleware","descriptor","enablePausedInactive","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","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_typeof","typeof","iterator","obj2","constructor","_defineProperties","props","configurable","writable","_toPropertyKey","_defineProperty","_getPrototypeOf","getPrototypeOf","setPrototypeOf","o2","__proto__","_setPrototypeOf","p2","_isNativeReflectConstruct","Reflect","construct","sham","valueOf","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","TypeError","_superPropBase","_get","receiver","desc","_toPrimitive","input","hint","prim","toPrimitive","assertThisInitialized","classCallCheck","instance","Constructor","createClass","protoProps","staticProps","createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","inherits","subClass","superClass","isNativeReflectConstruct","objectSpread2","getOwnPropertyDescriptors","defineProperties","possibleConstructorReturn","superPropBase","toPropertyKey","autoplay","playsinline","airplay","tabindex","mediaType","textTrackDom","nativeTextTrack","track","styleStr","wrap","XgVideoProxy","videoConfig","getElementsByTagName","trackDoms","lastBuffer","defaultVideoEventHandler","Date","curBuffer","videoEventHandler","canPlayType","range","currentTime","bool","isTrue","isFinite","ended","status","en","cn","rate","posterUrl","poster","vol","off","emit","methods","descriptors","callable","Function","listener","__eeOnceListener__","__ee__","listeners","candidate","args","slice","isValue","isPlainFunction","assign","normalizeOpts","contains","dscr","gs","isFunction","classRe","functionToString","isPrototype","isObject","possibleTypes","foo","bar","trzy","max","dest","process","opts1","searchString","emitter","function","locals","location","baseUrl","protocol","host","currentDir","pathname","replace","fullMatch","origUrl","newUrl","unquotedOrigUrl","trim","$1","clk","_click_","clickedTime","first","element","onTouch","fullscreen","Event","onCanPlay","StartPlayIcon","StartPauseIcon","onPlayerReady","fullscreenEl","fullscreenPromise","playBtn","PlayIcon","PauseIcon","tipsText","tips","playceholder","fullscreenBtn","RequestFullIcon","ExitFullIcon","container","Loading","isRotateFullscreen","containerWidth","progress","outer","cache","point","thumbnail","dotItem","dot","dotEvent","text","duration","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","interval","tnailUrls","coverPreviewContainer","coverPreviewPoint","onLoadedmetadata","coverPreviewOuter","events","isRotate","left","move","now","indexInPage","tnaiRowIndex","tnaiColIndex","up","passive","containerLeft","compute","pointWidth","leave","onTimeupdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","onCacheUpdate","cacheUpdateEvents","onTimeChange","replayText","ReplayIcon","path","svg","_ERROR","ret","ProxyPromise","ProxyPromise2","resolvePromise","rejectPromise","publicPromise","Promise","resolve","reject","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","danmujs","addEventListener","onDestroy","getAbsoluteURL","define","download","strFileName","strMimeType","reader","defaultMime","mimeType","payload","anchor","myBlob","MozBlob","WebKitBlob","fileName","pop","ajax","XMLHttpRequest","open","responseType","onload","response","send","msSaveBlob","dataUrlToBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","binData","decodeURIComponent","uiArr","winMode","innerHTML","display","body","click","userAgent","confirm","f","y","FileReader","readAsDataURL","div","defaultConfig","maxCount","backupUrl","isFetch","fetchTimeout","errorConfig","_inConfig","count","errfTimer","isFetchReturn","_originErrorEmit","errorCount","resolveFun","xhr","statusText","errorfetch","networkState","readyState","currentSrc","httpCode","httpMsg","retryCanPlay","retryData","playbackRate","isRepeat","keyCode","repeat","isBody","onBodyKeydown","onKeydown","onKeyup","checkTarget","isLonePress","isBack","isLongPress","currentTimeStep","keyShortcutStep","keyboardRate","show","isup","volumeStep","upload","dragLay","dragHandle","Draggabilly","miniplayerConfig","top","bottom","right","factory","getSize","Unidragger","extend","prop","jQuery","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","applyGrid","grid","position","_getPosition","startPoint","x","dragPoint","startPosition","getComputedStyle","onPointerMove","onPointerUp","enable","setHandles","handles","querySelectorAll","bindHandles","dispatchEvent","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","trigger","_getPositionCoord","isNaN","_addTransformPosition","styleSide","measure","parentSize","parseFloat","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","classList","add","pointerDown","okayPointerDown","isEnabled","pointerDownPointer","pageX","pageY","preventDefault","pointerDownBlur","_bindPostStartEvents","_pointerReset","dragStart","measureContainment","setLeftTop","animate","getContainer","elemSize","elemRect","getBoundingClientRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","HTMLElement","moveVector","dragMove","dragX","dragY","gridX","gridY","containDrag","axis","drag","min","dragEnd","isDragging","positionDrag","_this","requestAnimationFrame","staticClick","setPosition","disable","destroy","unbindHandles","removeData","_init","bridget","getStyleSize","num","logError","message","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","padding","borderStyle","borderWidth","boxSizing","documentElement","round","setup","size","innerWidth","innerHeight","outerWidth","outerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderHeight","isBorderBoxSizeOuter","styleWidth","styleHeight","Unipointer","_bindHandles","isAdd","bindMethod","touchAction","_touchActionValue","_bindStartEvent","PointerEvent","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","button","submit","image","file","isCursorNode","nodeName","isClickType","isOkay","focused","activeElement","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","_boundPointerEvents","_unbindPostStartEvents","removeEventListener","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","_events","onceEvents","_onceEvents","onceListeners","allOff","onWebkitpresentationmodechanged","pipWindow","nextBtn","rotateConfig","targetWidth","targetHeight","scale","clockwise","times","factor","screenShotOptions","callBack","encoderOptions","canvas","canvasCtx","img","saveScreenShot","saveLink","save","screenShotImg","saveFileName","lastCurrentTime","stallFlag","stallCheckTimer","progressTimer","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","switch","subtitles","showDefault","isNeedMove","setSubTitles","isActive","positionData","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","isMobile","currentExtText","_cid","_gid","_cids","_iC","debugger","_loadingTrack","lwidth","lheight","vWidth","vHeight","vLeft","attachPlayer","seiTime","lastSeiTime","_curTexts","_this2","isOpen","ieRemoveFirst","innerRoot","switchOff","isDefault","_log","catch","_loadTrack","then","addStyles","subTitle","_this3","checkSubtitle","_isCurrent","_loadTrackUrls","addCSS","_this4","_this$config","color","addObserver","_onTimeupdate","_onCoreEvents","unObserver","_this5","_updateCurrent","switchOn","nextSubtitle","__removeByTime","_emitPlayerSwitch","_err2","err2","_err3","_err","_this6","EVENTS","CHANGE","hide","_console","_len2","_key","log","_this7","promise","contentType","json","stringContent","urls","loadSubTitle","_pushList","curSubtitle","nextSubTitle","_this8","loadingCount","finally","dist","_start","_end","_index","i2","_this9","__remove","_this10","oldArr","newArr","includes","_this11","findIndexByTime","findCIndexByTime","getItemsByIndex","_len","_si","__render","_this12","delCids","getDelCid","newCids","getNewCid","texts","textExt","subtitleList","label","mUrl","urlList","sn","_sub","updateSubTitle","sei","_this13","_this$config2","_size","fontSize","mini","RESIZE","_this14","rect","resize","ids","_this15","children","removeIndex","getAttribute","_this16","jsonItems","jsonItem","attr","_get2","_len3","_key2","callback","_get3","_len4","_key3","_get4","_len5","_key4","_get5","_len6","_key5","_this$_videoMeta","EventEmitter","has","prefix","Events","EE","addListener","evt","_eventsCount","clearEvent","eventNames","names","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","prefixed","orgClassName","match","SubTitleParser","parseJson","preTag","styleTag","func","disabled","textNode","gid","cids","gList","XHR","data2","VTT_CHECK","VTT_STYLE","VTT_CUE","VTT_CUEND","ASS_CHECK","TIME_REGEX_LIST","ASS_FORMAT","ASS_STYLE","ASS_DIALOGUE","getSecond","isNumber","getByIndex","SubTitleParser2","fun","checkFormat","parseASS","parseVTT","values","textTag","retData","groupCount","lastSubTitle","toLocaleLowerCase","parseASSItem","_lastSubTitle","group","keyArr","charAt","toUpperCase","isLastSpace","isCueStart","styleInfo","styleHeader","_str","cueMatch","exec","checkIsTime","parseVttTime","_lastSubTitle2","parseVttText","tag","langMatch","retText","textMatch","tagsReg","re","aArr","bArr","XHR2","_ref","_ref$method","_ref$type","_ref$timeout","_ref$data","R","_method","_data","onerror","ontimeout","onabort","setRequestHeader","ResizeObserver","ResizeObserver2","__handlers","observer","entries","__trigger","handler","observe","unobserve","disconnect","cr","contentRect","__runHandler","resizeObserver","UPDATE","I18n","Enter","Poster","Flex","Progress","Time","PlaybackRate","NativeTextTrack","ErrorControl","barStr","enter","RequestCssFullIcon","ExitCssFullIcon","LargeIcon","SmallIcon","MutedIcon","icon","paused","tmp","cursrc","urlInRoot","cur","li","to","from","curRUL","liList","definitionObj","playbackRateList","selectedSpeed","playbackDom","ev","playbackRateObj","preview","DownloadIcon","comments","area","panelBtn","PanelIcon","DanmuJs","focusStatus","focusarray","danmuConfig","hidemodeArray","transparency","transparencyGradient","transparencyValue","showarea","showareaValue","danmuspeed","danmuspeedValue","danmufont","danmufontValue","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","play","stop","clear","txt","opacity","prior","realTime","unshift","readData","dataHandle","keepPoolWatermark","queue","pauseMove","startMove","like","setLikeDom","danmu","_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","textContent","onChangeDirection","random","updateOffset","elPos","moveV","mouseoverFunWrapper","mouseoverFun","mouseEnterControl","mouseEnterFunWrapper","_onTransitionEnd","unused","mouseControlPause","_moveV","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","destroyObserver","hmr","webpackPolyfill","deprecate","paths","pip","miniplayer","PlayNextIcon","onUrlListEnd","RotateIcon","ReloadIcon","screenShotText","textTrackShowDefault","controlText","ul","renderList","isDefaultShow","refresh","lastPlayTime","lastPlayTimeHideDelay","removeFunc","AirplayIcon"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 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":""}
1
+ {"version":3,"sources":["webpack://Player/webpack/bootstrap","webpack://Player/./src/utils/util.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/css-loader/lib/css-base.js","webpack://Player/./node_modules/style-loader/lib/addStyles.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/is-value.js","webpack://Player/./src/error.js","webpack://Player/./src/utils/sniffer.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/value/is.js","webpack://Player/./src/utils/xgplayerTimeRange.js","webpack://Player/./src/player.js","webpack://Player/./src/skin/controls/i18n.js","webpack://Player/./src/proxy.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/event-emitter/index.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/d/index.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/plain-function/is.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/function/is.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/prototype/is.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/type/object/is.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/assign/index.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/assign/is-implemented.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/assign/shim.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/keys/index.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/keys/is-implemented.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/keys/shim.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/function/noop.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/valid-value.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/normalize-options.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/string/#/contains/index.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/string/#/contains/is-implemented.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/string/#/contains/shim.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/valid-callable.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/event-emitter/all-off.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/valid-object.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/es5-ext/object/is-object.js","webpack://Player/./src/skin/style/index.scss?8c1f","webpack://Player/./src/skin/style/index.scss","webpack://Player/./node_modules/style-loader/lib/urls.js","webpack://Player/./src/controls/mobile.js","webpack://Player/./src/controls/pc.js","webpack://Player/./src/controls/start.js","webpack://Player/./src/skin/controls/start.js","webpack://Player/./src/skin/assets/startPlay.svg","webpack://Player/./src/skin/assets/startPause.svg","webpack://Player/./src/skin/style/controls/start.scss?0c41","webpack://Player/./src/skin/style/controls/start.scss","webpack://Player/./src/controls/fullscreen.js","webpack://Player/./src/controls/play.js","webpack://Player/./src/controls/replay.js","webpack://Player/./src/skin/controls/play.js","webpack://Player/./src/skin/assets/play.svg","webpack://Player/./src/skin/assets/pause.svg","webpack://Player/./src/skin/style/controls/play.scss?e857","webpack://Player/./src/skin/style/controls/play.scss","webpack://Player/./src/skin/controls/poster.js","webpack://Player/./src/skin/style/controls/poster.scss?be24","webpack://Player/./src/skin/style/controls/poster.scss","webpack://Player/./src/skin/controls/flex.js","webpack://Player/./src/skin/style/controls/placeholder.scss?564a","webpack://Player/./src/skin/style/controls/placeholder.scss","webpack://Player/./src/skin/controls/fullscreen.js","webpack://Player/./src/skin/assets/requestFull.svg","webpack://Player/./src/skin/assets/exitFull.svg","webpack://Player/./src/skin/style/controls/fullscreen.scss?12bf","webpack://Player/./src/skin/style/controls/fullscreen.scss","webpack://Player/./src/skin/controls/loading.js","webpack://Player/./src/skin/assets/loading.svg","webpack://Player/./src/skin/style/controls/loading.scss?c41a","webpack://Player/./src/skin/style/controls/loading.scss","webpack://Player/./src/skin/controls/progress.js","webpack://Player/./src/skin/style/controls/progress.scss?23f1","webpack://Player/./src/skin/style/controls/progress.scss","webpack://Player/./src/skin/controls/time.js","webpack://Player/./src/skin/style/controls/time.scss?0cc8","webpack://Player/./src/skin/style/controls/time.scss","webpack://Player/./src/skin/controls/replay.js","webpack://Player/./src/skin/assets/replay.svg","webpack://Player/./src/skin/style/controls/replay.scss?041b","webpack://Player/./src/skin/style/controls/replay.scss","webpack://Player/./src/skin/style/controls/textTrack.scss?8fb5","webpack://Player/./src/index.js","webpack://Player/./src/controls/airplay.js","webpack://Player/./src/controls/cssFullscreen.js","webpack://Player/./src/controls/danmu.js","webpack://Player/./src/controls/definition.js","webpack://Player/./src/controls/download.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/downloadjs/download.js","webpack://Player/./src/utils/url.js","webpack://Player/./src/controls/errorRetry.js","webpack://Player/./src/controls/keyboard.js","webpack://Player/./src/controls/localPreview.js","webpack://Player/./src/controls/memoryPlay.js","webpack://Player/./src/controls/miniplayer.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/draggabilly/draggabilly.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/get-size/get-size.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/unidragger/unidragger.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/unipointer/unipointer.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/ev-emitter/ev-emitter.js","webpack://Player/./src/controls/pip.js","webpack://Player/./src/controls/playNext.js","webpack://Player/./src/controls/reload.js","webpack://Player/./src/controls/rotate.js","webpack://Player/./src/controls/screenShot.js","webpack://Player/./src/controls/stallCheck.js","webpack://Player/./src/controls/volume.js","webpack://Player/./src/controls/textTrack.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/xgplayer-subtitles/dist/index.min.js","webpack://Player/./src/skin/index.js","webpack://Player/./src/skin/controls/enter.js","webpack://Player/./src/skin/style/controls/enter.scss?51e2","webpack://Player/./src/skin/style/controls/enter.scss","webpack://Player/./src/skin/controls/cssFullscreen.js","webpack://Player/./src/skin/assets/requestCssFull.svg","webpack://Player/./src/skin/assets/exitCssFull.svg","webpack://Player/./src/skin/style/controls/cssfullscreen.scss?6890","webpack://Player/./src/skin/style/controls/cssfullscreen.scss","webpack://Player/./src/skin/controls/volume.js","webpack://Player/./src/skin/assets/volumeMuted.svg","webpack://Player/./src/skin/assets/volumeSmall.svg","webpack://Player/./src/skin/assets/volumeLarge.svg","webpack://Player/./src/skin/style/controls/volume.scss?ce26","webpack://Player/./src/skin/style/controls/volume.scss","webpack://Player/./src/skin/controls/definition.js","webpack://Player/./src/skin/style/controls/definition.scss?44d9","webpack://Player/./src/skin/style/controls/definition.scss","webpack://Player/./src/skin/controls/playbackRate.js","webpack://Player/./src/skin/style/controls/playbackRate.scss?b22e","webpack://Player/./src/skin/style/controls/playbackRate.scss","webpack://Player/./src/skin/controls/localPreview.js","webpack://Player/./src/skin/controls/download.js","webpack://Player/./src/skin/assets/download.svg","webpack://Player/./src/skin/style/controls/download.scss?fd33","webpack://Player/./src/skin/style/controls/download.scss","webpack://Player/./src/skin/controls/danmu.js","webpack://Player//Users/bytedance/Documents/repository/__git__/bytedance/xgplayer/node_modules/danmu.js/dist/index.js","webpack://Player/./src/skin/assets/panel.svg","webpack://Player/./src/skin/style/controls/danmu.scss?63bd","webpack://Player/./src/skin/style/controls/danmu.scss","webpack://Player/./src/skin/controls/pip.js","webpack://Player/./src/skin/style/controls/pip.scss?ca0d","webpack://Player/./src/skin/style/controls/pip.scss","webpack://Player/./src/skin/controls/miniplayer.js","webpack://Player/./src/skin/style/controls/miniplayer.scss?40e7","webpack://Player/./src/skin/style/controls/miniplayer.scss","webpack://Player/./src/skin/controls/playNext.js","webpack://Player/./src/skin/assets/playNext.svg","webpack://Player/./src/skin/style/controls/playNext.scss?357b","webpack://Player/./src/skin/style/controls/playNext.scss","webpack://Player/./src/skin/controls/rotate.js","webpack://Player/./src/skin/assets/rotate.svg","webpack://Player/./src/skin/style/controls/rotate.scss?2612","webpack://Player/./src/skin/style/controls/rotate.scss","webpack://Player/./src/skin/controls/reload.js","webpack://Player/./src/skin/assets/reload.svg","webpack://Player/./src/skin/style/controls/reload.scss?8b1a","webpack://Player/./src/skin/style/controls/reload.scss","webpack://Player/./src/skin/controls/screenShot.js","webpack://Player/./src/skin/style/controls/screenShot.scss?3979","webpack://Player/./src/skin/style/controls/screenShot.scss","webpack://Player/./src/skin/controls/nativeTextTrack.js","webpack://Player/./src/skin/style/controls/textTrack.scss","webpack://Player/./src/skin/controls/textTrack.js","webpack://Player/./src/skin/controls/error.js","webpack://Player/./src/skin/style/controls/error.scss?28c3","webpack://Player/./src/skin/style/controls/error.scss","webpack://Player/./src/skin/controls/memoryPlay.js","webpack://Player/./src/skin/style/controls/memoryPlay.scss?bf77","webpack://Player/./src/skin/style/controls/memoryPlay.scss","webpack://Player/./src/skin/controls/airplay.js","webpack://Player/./src/skin/assets/airplay.svg","webpack://Player/./src/skin/style/controls/airplay.scss?6996","webpack://Player/./src/skin/style/controls/airplay.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","createDom","hasClass","addClass","removeClass","toggleClass","findDom","padStart","format","event","typeOf","deepCopy","getBgImage","copyDom","_setInterval","_clearInterval","createImgBtn","isWeiXin","isUc","computeWatchDur","offInDestroy","on","once","getBuffered2","checkIsBrowser","setStyle","checkWebkitSetPresentationMode","video","el","tpl","attrs","cname","dom","document","item","className","Array","some","RegExp","reg","sel","e","str","length","pad","charstr","String","len","maxlen","Math","chars","time","window","hour","minute","second","touch","obj","dst","src","url","a","back","node","context","eventName","intervalFunc","frequency","setInterval","clearInterval","imgUrl","width","height","btn","w","h","unit","Number","ua","played","arr","begin","end","j","b","watch_dur","fn","offEvent","_fn","data","vbuffered","maxHoleDuration","buffered","start","diff","buffered_2","buf2len","buf2end","XgplayerTimeRange","elem","style","error","PresentationMode","PIP","INLINE","FULLSCREEN","util","useSourceMap","list","toString","this","map","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","id","push","memo","stylesInDom","isOldIE","all","atob","apply","arguments","getTarget","target","querySelector","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","indexOf","splice","createStyleElement","createElement","type","addAttrs","keys","forEach","setAttribute","update","remove","result","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","href","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","autoFixUrls","undefined","convertToAbsoluteUrls","blob","oldSrc","_undefined","require","val","ErrorTypes","network","code","msg","remark","mse","parse","decoder","runtime","timeout","other","errd","line","handle","version","errorCode","mediaError","arg","sniffer","navigator","ie","firfox","chrome","opera","safari","isWindowsPhone","test","isSymbian","isAndroid","isFireFox","isTablet","isPhone","isPc","bufferedList","Player","ignores","whitelist","lang","inactive","volume","controls","controlsList","unselectable","onselectstart","Errors","vid","console","s_i18n","self","fetch","method","headers","Accept","res","err","evName","evFunc","player","videoWidth","containerSize","videoHeight","setTimeout","nodeType","root","config","playPromise","isDelDom","_interval","classNameList","split","clearTimeout","keyShortcut","destroyFunc","_replay","param","defaultUserGestureEventHandler","userGestureEventMiddleware","descriptor","enablePausedInactive","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","autoplay","playsinline","airplay","tabindex","mediaType","textTrackDom","nativeTextTrack","track","styleStr","wrap","XgVideoProxy","constructor","videoConfig","getElementsByTagName","trackDoms","lastBuffer","defaultVideoEventHandler","Date","curBuffer","videoEventHandler","canPlayType","range","currentTime","bool","isTrue","isFinite","ended","status","en","cn","rate","posterUrl","poster","vol","off","emit","methods","descriptors","callable","Function","defineProperties","configurable","writable","listener","__eeOnceListener__","__ee__","listeners","candidate","args","slice","isValue","isPlainFunction","assign","normalizeOpts","contains","dscr","desc","gs","isFunction","classRe","functionToString","isPrototype","isObject","possibleTypes","foo","bar","trzy","max","dest","TypeError","process","opts1","searchString","emitter","function","locals","location","baseUrl","protocol","host","currentDir","pathname","replace","fullMatch","origUrl","newUrl","unquotedOrigUrl","trim","$1","clk","_click_","clickedTime","first","element","onTouch","fullscreen","Event","onCanPlay","StartPlayIcon","StartPauseIcon","onPlayerReady","fullscreenEl","fullscreenPromise","playBtn","PlayIcon","PauseIcon","tipsText","tips","playceholder","fullscreenBtn","RequestFullIcon","ExitFullIcon","container","Loading","isRotateFullscreen","containerWidth","progress","outer","cache","point","thumbnail","dotItem","dot","dotEvent","text","duration","tnailPicNum","tnailWidth","tnailHeight","tnailCol","tnailRow","interval","tnailUrls","coverPreviewContainer","coverPreviewPoint","onLoadedmetadata","coverPreviewOuter","events","move","up","down","isRotate","left","now","indexInPage","tnaiRowIndex","tnaiColIndex","passive","onMouseEnter","containerLeft","compute","pointWidth","leave","onTimeupdate","precent","prevPrecent","onCurrentTimeChange","onSrcChange","onCacheUpdate","cacheUpdateEvents","onTimeChange","replayText","ReplayIcon","path","svg","Airplay","CssFullscreen","Danmu","Definition","Download","ErrorRetryControl","Fullscreen","Keyboard","LocalPreview","MemoryPlay","Miniplayer","Mobile","Pc","Pip","Play","PlayNext","Reload","Replay","Rotate","ScreenShot","StallCheck","Start","Volume","TextTrack","danmujs","addEventListener","onDestroy","getAbsoluteURL","define","download","strFileName","strMimeType","reader","defaultMime","mimeType","payload","anchor","myBlob","MozBlob","WebKitBlob","fileName","pop","ajax","XMLHttpRequest","open","responseType","onload","response","send","msSaveBlob","dataUrlToBlob","saver","tempUiArr","Uint8Array","mx","charCodeAt","strUrl","binData","decodeURIComponent","uiArr","winMode","innerHTML","display","body","click","userAgent","confirm","f","y","FileReader","readAsDataURL","div","defaultConfig","maxCount","backupUrl","isFetch","fetchTimeout","errorConfig","_inConfig","count","errfTimer","isFetchReturn","_originErrorEmit","errorCount","resolveFun","resolve","Promise","xhr","statusText","errorfetch","networkState","readyState","currentSrc","httpCode","httpMsg","retryCanPlay","retryData","playbackRate","isRepeat","keyCode","repeat","isBody","onBodyKeydown","onKeydown","onKeyup","checkTarget","state","isLonePress","isBack","isLongPress","currentTimeStep","keyShortcutStep","keyboardRate","show","isup","volumeStep","upload","dragLay","dragHandle","Draggabilly","miniplayerConfig","top","bottom","right","factory","getSize","Unidragger","extend","prop","jQuery","$element","defaults","option","_create","proto","opts","positionValues","relative","absolute","fixed","applyGrid","grid","position","_getPosition","startPoint","x","dragPoint","startPosition","getComputedStyle","onPointerMove","onPointerUp","enable","setHandles","handles","querySelectorAll","bindHandles","dispatchEvent","emitArgs","emitEvent","dispatchJQueryEvent","jquery","$event","trigger","_getPositionCoord","isNaN","_addTransformPosition","styleSide","measure","parentSize","parseFloat","parseInt","matrixValues","xIndex","translateX","translateY","onPointerDown","pointer","classList","add","pointerDown","okayPointerDown","isEnabled","pointerDownPointer","pageX","pageY","preventDefault","pointerDownBlur","_bindPostStartEvents","_pointerReset","dragStart","measureContainment","setLeftTop","animate","getContainer","elemSize","elemRect","getBoundingClientRect","containerRect","borderSizeX","borderLeftWidth","borderRightWidth","borderSizeY","borderTopWidth","borderBottomWidth","relativeStartPosition","containSize","containment","HTMLElement","moveVector","dragMove","dragX","dragY","gridX","gridY","containDrag","axis","drag","min","dragEnd","isDragging","positionDrag","_this","requestAnimationFrame","staticClick","setPosition","disable","destroy","unbindHandles","removeData","_init","bridget","getStyleSize","num","logError","message","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","padding","borderStyle","borderWidth","boxSizing","documentElement","round","setup","size","innerWidth","innerHeight","outerWidth","outerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderHeight","isBorderBoxSizeOuter","styleWidth","styleHeight","Unipointer","_bindHandles","isAdd","bindMethod","touchAction","_touchActionValue","_bindStartEvent","PointerEvent","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","button","submit","image","file","isCursorNode","nodeName","isClickType","isOkay","focused","activeElement","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","_boundPointerEvents","_unbindPostStartEvents","removeEventListener","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","_events","onceEvents","_onceEvents","onceListeners","allOff","onWebkitpresentationmodechanged","pipWindow","nextBtn","rotateConfig","targetWidth","targetHeight","scale","clockwise","times","factor","screenShotOptions","callBack","encoderOptions","canvas","canvasCtx","img","saveScreenShot","saveLink","save","screenShotImg","saveFileName","lastCurrentTime","stallFlag","stallCheckTimer","progressTimer","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","switch","subtitles","showDefault","isNeedMove","setSubTitles","isActive","positionData","textTrackStyle","needRemove","isListUpdate","language","default","promise","I","reject","Ke","getAttribute","match","u","br","Ir","_","_r","wr","then","Rr","trace","catch","T","S","__e","O","__g","E","copyright","P","random","M","A","C","R","N","L","getPrototypeOf","F","z","B","D","H","V","W","G","U","$","valueOf","K","Y","X","J","q","virtual","Z","Q","tt","et","nt","rt","ceil","it","floor","ot","st","at","ut","ct","lt","propertyIsEnumerable","ft","ht","dt","pt","vt","gt","yt","mt","_t","xt","bt","kt","wt","Tt","St","Ot","Et","contentWindow","write","close","Pt","jt","store","Mt","At","Ct","Rt","Lt","It","Ft","zt","next","Nt","v","g","entries","values","Bt","charAt","_i","done","Dt","_k","Arguments","Ht","Vt","Wt","Gt","Ut","$t","Kt","Yt","Xt","Jt","isExtensible","preventExtensions","KEY","NEED","fastKey","getWeak","onFreeze","qt","Zt","Qt","getOwnPropertySymbols","te","ne","isArray","re","getOwnPropertyNames","oe","se","ae","ce","ue","le","getOwnPropertyDescriptor","fe","he","de","pe","ve","ye","ge","me","_e","xe","be","ke","we","Te","Se","Oe","Ee","QObject","Pe","findChild","je","Me","Ae","iterator","Ce","Re","ee","Ie","Fe","ze","Be","De","He","Ve","for","keyFor","useSetter","useSimple","We","Ge","Ue","$e","Ye","ReferenceError","Xe","Je","qe","Ze","Qe","tn","setPrototypeOf","__proto__","check","nn","rn","sn","an","un","ln","hn","pn","dn","callee","yn","return","gn","mn","xn","bn","getIteratorMethod","kn","_n","BREAK","RETURN","wn","Tn","Sn","On","En","setImmediate","Pn","clearImmediate","jn","MessageChannel","Mn","Dispatch","An","Cn","Rn","Nn","nextTick","port2","port1","onmessage","postMessage","importScripts","onreadystatechange","Ln","clear","In","Fn","MutationObserver","WebKitMutationObserver","zn","Bn","Dn","Hn","Vn","Wn","Gn","Un","$n","Kn","Yn","Xn","from","Jn","qn","Zn","Qn","tr","er","domain","exit","enter","standalone","observe","characterData","nr","rr","ir","versions","or","v8","sr","ar","ur","cr","lr","PromiseRejectionEvent","fr","hr","_c","_v","_s","ok","fail","_h","vr","dr","pr","onunhandledrejection","reason","_a","onrejectionhandled","yr","_d","_w","gr","vn","race","finally","try","mr","xr","kr","_eventsCount","eventNames","listenerCount","removeListener","removeAllListeners","addListener","prefixed","EventEmitter","toUpperCase","onerror","ontimeout","onabort","setRequestHeader","Tr","Sr","Or","Er","Pr","jr","Mr","Ar","Cr","checkFormat","parseASS","parseVTT","textTag","toLocaleLowerCase","parseASSItem","exec","checkIsTime","parseVttTime","parseVttText","tag","Nr","__handlers","ResizeObserver","observer","__trigger","handler","unobserve","disconnect","contentRect","__runHandler","Lr","Fr","zr","currentText","_cid","_gid","_cids","_iId","_iC","_ctime","_loadingTrack","_isOpen","_videoMeta","lwidth","lheight","vWidth","vHeight","vLeft","attachPlayer","innerRoot","switchOff","isDefault","addStyles","disabled","detachPlayer","color","__onTimeupdate","addObserver","_onResize","unObserver","_updateCurrent","hide","__remove","_update","includes","getDelCid","getNewCid","__render","Element","__startResize","fontSize","resize","children","I18n","Enter","Poster","Flex","Progress","Time","PlaybackRate","NativeTextTrack","ErrorControl","barStr","RequestCssFullIcon","ExitCssFullIcon","LargeIcon","SmallIcon","MutedIcon","icon","paused","tmp","cursrc","urlInRoot","cur","li","to","curRUL","liList","definitionObj","playbackRateList","selectedSpeed","playbackDom","ev","playbackRateObj","preview","DownloadIcon","comments","area","panelBtn","PanelIcon","DanmuJs","focusStatus","focusarray","danmuConfig","hidemodeArray","transparency","transparencyGradient","transparencyValue","showarea","showareaValue","danmuspeed","danmuspeedValue","danmufont","danmufontValue","startsWith","getElementById","Node","tagName","attributes","attachEventListener","styleUtil","setProperty","styleCSSText","isNumber","throttle","logger","setLogger","info","overlap","lines","live","direction","needResizeObserver","dropStaleComments","channelSize","maxCommentsLength","bulletOffset","highScorePriority","hideArr","domObj","freezeId","containerStyle","bulletBtn","main","isReady","addResizeObserver","pause","play","stop","txt","opacity","prior","realTime","unshift","readData","dataHandle","keepPoolWatermark","queue","pauseMove","startMove","like","setLikeDom","danmu","_releaseCtrl","mouseControl","_freezeCtrl","dataElHandle","sortData","forceDuration","playRate","reflow","setFontSize","channel_id","topInit","channel","resizeSync","bullets","displayArea","getRealOccupyArea","containerPos","constructorName","log","defaultOff","switchBtn","playedData","timer","retryStatus","_status","updateQueue","handleId","handleTimer","_cancelDataHandleTimer","bullet","attached_","reset","init","channels","resized","sort","score","updatePos","bulletCreateFail","attach","addBullet","detach","noDiscard","onElDestroy","Bullet","bookChannelId","reuseDOM","disableCopyDOM","eventListeners","useCapture","use","textContent","onChangeDirection","updateOffset","elPos","moveV","mouseoverFunWrapper","mouseoverFun","mouseEnterControl","mouseEnterFunWrapper","_onTransitionEnd","unused","mouseControlPause","_moveV","getTime","moveTime","moveMoreS","moveContainerHeight","moveContainerWidth","pastDuration","startTime","hasMove","outerHTML","removeBullet","_cancelResizeTimer","resetId","cancelAnimationFrame","_initChannels","channelCount","channelWidth","channelHeight","containerTop","containerBottom","containerRight","operating","scroll","bookId","bOffset","loop","validAreaLineRule","resizing","resizeId","isInteger","initDOM","initSize","idleList","usingList","_id","_expand","shift","textcontent","clearElementStyle","destroyObserver","hmr","pip","miniplayer","PlayNextIcon","onUrlListEnd","RotateIcon","ReloadIcon","screenShotText","textTrackShowDefault","controlText","ul","renderList","isDefaultShow","refresh","lastPlayTime","lastPlayTimeHideDelay","removeFunc","AirplayIcon"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 79);\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 && 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 const controls = player.controls\n if (controls) {\n controls.removeEventListener('mouseleave', onControlMouseLeave)\n controls.removeEventListener('mouseenter', onControlMouseEnter)\n controls.removeEventListener('click', onControlClick)\n }\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\r\n let move = null\r\n let up = null\r\n let down = 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 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 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 events.forEach(item => {\r\n container.addEventListener(item, down)\r\n })\r\n\r\n const onMouseEnter = 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 }\r\n container.addEventListener('mouseenter', onMouseEnter, 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 container.removeEventListener('mouseenter', onMouseEnter, false)\r\n events.forEach(item => {\r\n container.removeEventListener(item, down)\r\n })\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 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}","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 const player = this\n const {root, video} = player\n if (!player.rotateDeg) {\n player.rotateDeg = 0\n }\n\n let width = root.offsetWidth\n let height = root.offsetHeight\n let styleWidth = root.style.width || ''\n let styleHeight = root.style.height || ''\n\n let targetWidth = video.videoWidth\n let targetHeight = video.videoHeight\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 video.style.transformOrigin = 'center center'\n video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n if (player.config.rotate.controlsFix) {\n video.style.transformOrigin = 'center center'\n video.style.transform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n video.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${scale})`\n } else {\n root.style.transformOrigin = 'center center'\n root.style.transform = `rotate(${player.rotateDeg}turn) scale(${1})`\n root.style.webKitTransform = `rotate(${player.rotateDeg}turn) scale(${1})`\n }\n\n if (!player.config.rotate.innerRotate && player.config.rotate.controlsFix) {\n root.style.width = height + 'px'\n root.style.height = width + 'px'\n } else {\n if (player.rotateDeg === 0.25 || player.rotateDeg === 0.75) {\n // 超过视口宽高,则限制旋转后的宽高,以解决控制条不见的问题\n if (height > window.innerWidth) {\n root.style.height = window.innerWidth + 'px'\n }\n if (width > window.innerHeight) {\n root.style.width = window.innerHeight + 'px'\n }\n } else {\n // reset\n root.style.width = styleWidth || ''\n root.style.height = styleHeight || ''\n }\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}\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","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=t||self,t.XgSubtitle=e())}(this,function(){\"use strict\";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function e(t,e){return e={exports:{}},t(e,e.exports),e.exports}function n(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=r}),this.resolve=I(e),this.reject=I(n)}function r(t){var e=t.length;return 3===e?(60*(60*Number(t[0])+Number(t[1]))*1e3+1e3*Number(t[2]))/1e3:2===e?(60*Number(t[0])*1e3+1e3*Number(t[1]))/1e3:Number(t[0])}function i(t){return/^(\\-|\\+)?\\d+(\\.\\d+)?$/.test(t)}function o(t){return t}function s(t,e){return t>=0&&t<e.length?e[t]:\"\"}function a(t,e){if(!t)return!1;if(t.classList)return Array.prototype.some.call(t.classList,function(t){return t===e});var n=t.className&&\"object\"===Ke(t.className)?t.getAttribute(\"class\"):t.className;return n&&!!n.match(new RegExp(\"(\\\\s|^)\"+e+\"(\\\\s|$)\"))}function u(t,e){t&&(t.classList?e.replace(/(^\\s+|\\s+$)/g,\"\").split(/\\s+/g).forEach(function(e){e&&t.classList.add(e)}):a(t,e)||(t.className&&\"object\"===Ke(t.className)?t.setAttribute(\"class\",t.getAttribute(\"class\")+\" \"+e):t.className+=\" \"+e))}function c(t,e){t&&(t.classList?e.split(/\\s+/g).forEach(function(e){t.classList.remove(e)}):a(t,e)&&e.split(/\\s+/g).forEach(function(e){var n=new RegExp(\"(\\\\s|^)\"+e+\"(\\\\s|$)\");t.className&&\"object\"===Ke(t.className)?t.setAttribute(\"class\",t.getAttribute(\"class\").replace(n,\" \")):t.className=t.className.replace(n,\" \")}))}function l(t,e,n){var r=e.length;if(r<1)return-1;if(n=n<0?0:n>=r?r-1:n,e[n].start<=t&&t<e[n].end)return n;for(var i=e[n].end<=t?n+1:0;i<r;i++){if(e[i].start<=t&&t<e[i].end)return i;if(t>e[i].end&&i+1<r&&t<e[i+1].start)return-1;if(t>e[i].end&&i+1>=r)return-1}return-1}function f(t,e,n){var r=e.length;if(r<1)return[];var i=[];if((n=n<0?0:n>=r?r-1:n)<r)for(var o=e[n].end<=t?n:0;o<r&&(e[o].start<=t&&t<e[o].end&&i.push(o),!(t<e[o].start));o++);return i}function h(t){return Object.prototype.toString.call(t).match(/([^\\s.*]+)(?=]$)/g)[0]}function d(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"div\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"\",i=document.createElement(t);return i.className=r,i.innerHTML=e,br(n).forEach(function(e){var r=e,o=n[e];\"video\"===t||\"audio\"===t||\"live-video\"===t?o&&i.setAttribute(r,o):i.setAttribute(r,o)}),i}function p(){var t=navigator.userAgent,e=/(?:Windows Phone)/.test(t),n=/(?:SymbianOS)/.test(t)||e,r=/(?:Android)/.test(t),i=/(?:Firefox)/.test(t),o=/(?:iPad|PlayBook)/.test(t)||r&&!/(?:Mobile)/.test(t)||i&&/(?:Tablet)/.test(t);return/(?:iPhone)/.test(t)&&!o||r||n||o}function v(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",n=\"\";t.map(function(t){n+=\" \"+e+\" \"+t.key+\" {\"+t.style+\"}\"});var r=document.createElement(\"style\"),i=document.head||document.getElementsByTagName(\"head\")[0];if(r.type=\"text/css\",r.id=\"ssss\",r.styleSheet){var o=function(){try{r.styleSheet.cssText=n}catch(t){}};r.styleSheet.disabled?setTimeout(o,10):o()}else{var s=document.createTextNode(n);r.appendChild(s)}i.appendChild(r)}function y(t,e){Lr||(Lr=new Nr),Lr.addObserver(t,e)}function g(t,e){Lr&&Lr.unObserver(t,e)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={code:Ir[t].code,msg:Ir[t].msg};return br(e).map(function(t){n[t]=e[t]}),n}function _(t){return new _r(function(e,n){t.list&&e(t),new wr({url:t.url,type:\"text\"}).then(function(r){Rr.parse(r.res.response,function(r,i){if(i){var o=m(2,i);console.trace(o),n(o,{format:r.format})}else if(r.format)t.list=r.list,t.format=r.format,t.styles=r.styles,e(t);else{var s=m(3);console.trace(s),n(s)}})}).catch(function(t){var e=m(1,{statusText:t.statusText,status:t.status,type:t.type,message:\"http load error\"});console.trace(e),n(e)})})}function x(t,e){return!!(t.id&&t.id===e.id||t.language&&t.language===e.language)}var b=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t},k=function(t){return Object(b(t))},w={}.hasOwnProperty,T=function(t,e){return w.call(t,e)},S=e(function(t){var e=t.exports={version:\"2.6.12\"};\"number\"==typeof __e&&(__e=e)}),O=(S.version,e(function(t){var e=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=e)})),E=e(function(t){var e=O[\"__core-js_shared__\"]||(O[\"__core-js_shared__\"]={});(t.exports=function(t,n){return e[t]||(e[t]=void 0!==n?n:{})})(\"versions\",[]).push({version:S.version,mode:\"pure\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})}),P=0,j=Math.random(),M=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++P+j).toString(36))},A=E(\"keys\"),C=function(t){return A[t]||(A[t]=M(t))},R=C(\"IE_PROTO\"),N=Object.prototype,L=Object.getPrototypeOf||function(t){return t=k(t),T(t,R)?t[R]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?N:null},I=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t},F=function(t,e,n){if(I(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}},z=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t},B=function(t){if(!z(t))throw TypeError(t+\" is not an object!\");return t},D=function(t){try{return!!t()}catch(t){return!0}},H=!D(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}),V=O.document,W=z(V)&&z(V.createElement),G=function(t){return W?V.createElement(t):{}},U=!H&&!D(function(){return 7!=Object.defineProperty(G(\"div\"),\"a\",{get:function(){return 7}}).a}),$=function(t,e){if(!z(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!z(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!z(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!z(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")},K=Object.defineProperty,Y={f:H?Object.defineProperty:function(t,e,n){if(B(t),e=$(e,!0),B(n),U)try{return K(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},X=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},J=H?function(t,e,n){return Y.f(t,e,X(1,n))}:function(t,e,n){return t[e]=n,t},q=function(t,e,n){var r,i,o,s=t&q.F,a=t&q.G,u=t&q.S,c=t&q.P,l=t&q.B,f=t&q.W,h=a?S:S[e]||(S[e]={}),d=h.prototype,p=a?O:u?O[e]:(O[e]||{}).prototype;a&&(n=e);for(r in n)(i=!s&&p&&void 0!==p[r])&&T(h,r)||(o=i?p[r]:n[r],h[r]=a&&\"function\"!=typeof p[r]?n[r]:l&&i?F(o,O):f&&p[r]==o?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(o):c&&\"function\"==typeof o?F(Function.call,o):o,c&&((h.virtual||(h.virtual={}))[r]=o,t&q.R&&d&&!d[r]&&J(d,r,o)))};q.F=1,q.G=2,q.S=4,q.P=8,q.B=16,q.W=32,q.U=64,q.R=128;var Z=q,Q=function(t,e){var n=(S.Object||{})[t]||Object[t],r={};r[t]=e(n),Z(Z.S+Z.F*D(function(){n(1)}),\"Object\",r)};Q(\"getPrototypeOf\",function(){return function(t){return L(k(t))}});var tt=S.Object.getPrototypeOf,et=t(e(function(t){t.exports={default:tt,__esModule:!0}})),nt=t(e(function(t,e){e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}})),rt=Math.ceil,it=Math.floor,ot=function(t){return isNaN(t=+t)?0:(t>0?it:rt)(t)},st=J,at={},ut={}.toString,ct=function(t){return ut.call(t).slice(8,-1)},lt=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==ct(t)?t.split(\"\"):Object(t)},ft=function(t){return lt(b(t))},ht=Math.min,dt=function(t){return t>0?ht(ot(t),9007199254740991):0},pt=Math.max,vt=Math.min,yt=function(t,e){return t=ot(t),t<0?pt(t+e,0):vt(t,e)},gt=function(t){return function(e,n,r){var i,o=ft(e),s=dt(o.length),a=yt(r,s);if(t&&n!=n){for(;s>a;)if((i=o[a++])!=i)return!0}else for(;s>a;a++)if((t||a in o)&&o[a]===n)return t||a||0;return!t&&-1}}(!1),mt=C(\"IE_PROTO\"),_t=function(t,e){var n,r=ft(t),i=0,o=[];for(n in r)n!=mt&&T(r,n)&&o.push(n);for(;e.length>i;)T(r,n=e[i++])&&(~gt(o,n)||o.push(n));return o},xt=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\"),bt=Object.keys||function(t){return _t(t,xt)},kt=H?Object.defineProperties:function(t,e){B(t);for(var n,r=bt(e),i=r.length,o=0;i>o;)Y.f(t,n=r[o++],e[n]);return t},wt=O.document,Tt=wt&&wt.documentElement,St=C(\"IE_PROTO\"),Ot=function(){},Et=function(){var t,e=G(\"iframe\"),n=xt.length;for(e.style.display=\"none\",Tt.appendChild(e),e.src=\"javascript:\",(t=e.contentWindow.document).open(),t.write(\"<script>document.F=Object<\\/script>\"),t.close(),Et=t.F;n--;)delete Et.prototype[xt[n]];return Et()},Pt=Object.create||function(t,e){var n;return null!==t?(Ot.prototype=B(t),n=new Ot,Ot.prototype=null,n[St]=t):n=Et(),void 0===e?n:kt(n,e)},jt=e(function(t){var e=E(\"wks\"),n=O.Symbol,r=\"function\"==typeof n;(t.exports=function(t){return e[t]||(e[t]=r&&n[t]||(r?n:M)(\"Symbol.\"+t))}).store=e}),Mt=Y.f,At=jt(\"toStringTag\"),Ct=function(t,e,n){t&&!T(t=n?t:t.prototype,At)&&Mt(t,At,{configurable:!0,value:e})},Rt={};J(Rt,jt(\"iterator\"),function(){return this});var Nt=function(t,e,n){t.prototype=Pt(Rt,{next:X(1,n)}),Ct(t,e+\" Iterator\")},Lt=jt(\"iterator\"),It=!([].keys&&\"next\"in[].keys()),Ft=function(){return this},zt=function(t,e,n,r,i,o,s){Nt(n,e,r);var a,u,c,l=function(t){if(!It&&t in p)return p[t];switch(t){case\"keys\":case\"values\":return function(){return new n(this,t)}}return function(){return new n(this,t)}},f=e+\" Iterator\",h=\"values\"==i,d=!1,p=t.prototype,v=p[Lt]||p[\"@@iterator\"]||i&&p[i],y=v||l(i),g=i?h?l(\"entries\"):y:void 0,m=\"Array\"==e?p.entries||v:v;if(m&&(c=L(m.call(new t)))!==Object.prototype&&c.next&&Ct(c,f,!0),h&&v&&\"values\"!==v.name&&(d=!0,y=function(){return v.call(this)}),s&&(It||d||!p[Lt])&&J(p,Lt,y),at[e]=y,at[f]=Ft,i)if(a={values:h?y:l(\"values\"),keys:o?y:l(\"keys\"),entries:g},s)for(u in a)u in p||st(p,u,a[u]);else Z(Z.P+Z.F*(It||d),e,a);return a},Bt=function(t){return function(e,n){var r,i,o=String(b(e)),s=ot(n),a=o.length;return s<0||s>=a?t?\"\":void 0:(r=o.charCodeAt(s),r<55296||r>56319||s+1===a||(i=o.charCodeAt(s+1))<56320||i>57343?t?o.charAt(s):r:t?o.slice(s,s+2):i-56320+(r-55296<<10)+65536)}}(!0);zt(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=Bt(e,n),this._i+=t.length,{value:t,done:!1})});var Dt=function(t,e){return{value:e,done:!!t}};zt(Array,\"Array\",function(t,e){this._t=ft(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,Dt(1)):\"keys\"==e?Dt(0,n):\"values\"==e?Dt(0,t[n]):Dt(0,[n,t[n]])},\"values\");at.Arguments=at.Array;for(var Ht=jt(\"toStringTag\"),Vt=\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList\".split(\",\"),Wt=0;Wt<Vt.length;Wt++){var Gt=Vt[Wt],Ut=O[Gt],$t=Ut&&Ut.prototype;$t&&!$t[Ht]&&J($t,Ht,Gt),at[Gt]=at.Array}var Kt={f:jt},Yt=Kt.f(\"iterator\"),Xt=e(function(t){t.exports={default:Yt,__esModule:!0}});t(Xt);var Jt=e(function(t){var e=M(\"meta\"),n=Y.f,r=0,i=Object.isExtensible||function(){return!0},o=!D(function(){return i(Object.preventExtensions({}))}),s=function(t){n(t,e,{value:{i:\"O\"+ ++r,w:{}}})},a=function(t,n){if(!z(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!T(t,e)){if(!i(t))return\"F\";if(!n)return\"E\";s(t)}return t[e].i},u=function(t,n){if(!T(t,e)){if(!i(t))return!0;if(!n)return!1;s(t)}return t[e].w},c=function(t){return o&&l.NEED&&i(t)&&!T(t,e)&&s(t),t},l=t.exports={KEY:e,NEED:!1,fastKey:a,getWeak:u,onFreeze:c}}),qt=(Jt.KEY,Jt.NEED,Jt.fastKey,Jt.getWeak,Jt.onFreeze,Y.f),Zt=function(t){var e=S.Symbol||(S.Symbol={});\"_\"==t.charAt(0)||t in e||qt(e,t,{value:Kt.f(t)})},Qt={f:Object.getOwnPropertySymbols},te={f:{}.propertyIsEnumerable},ee=function(t){var e=bt(t),n=Qt.f;if(n)for(var r,i=n(t),o=te.f,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e},ne=Array.isArray||function(t){return\"Array\"==ct(t)},re=xt.concat(\"length\",\"prototype\"),ie={f:Object.getOwnPropertyNames||function(t){return _t(t,re)}},oe=ie.f,se={}.toString,ae=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],ue=function(t){try{return oe(t)}catch(t){return ae.slice()}},ce={f:function(t){return ae&&\"[object Window]\"==se.call(t)?ue(t):oe(ft(t))}},le=Object.getOwnPropertyDescriptor,fe={f:H?le:function(t,e){if(t=ft(t),e=$(e,!0),U)try{return le(t,e)}catch(t){}if(T(t,e))return X(!te.f.call(t,e),t[e])}},he=Jt.KEY,de=fe.f,pe=Y.f,ve=ce.f,ye=O.Symbol,ge=O.JSON,me=ge&&ge.stringify,_e=jt(\"_hidden\"),xe=jt(\"toPrimitive\"),be={}.propertyIsEnumerable,ke=E(\"symbol-registry\"),we=E(\"symbols\"),Te=E(\"op-symbols\"),Se=Object.prototype,Oe=\"function\"==typeof ye&&!!Qt.f,Ee=O.QObject,Pe=!Ee||!Ee.prototype||!Ee.prototype.findChild,je=H&&D(function(){return 7!=Pt(pe({},\"a\",{get:function(){return pe(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var r=de(Se,e);r&&delete Se[e],pe(t,e,n),r&&t!==Se&&pe(Se,e,r)}:pe,Me=function(t){var e=we[t]=Pt(ye.prototype);return e._k=t,e},Ae=Oe&&\"symbol\"==typeof ye.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof ye},Ce=function(t,e,n){return t===Se&&Ce(Te,e,n),B(t),e=$(e,!0),B(n),T(we,e)?(n.enumerable?(T(t,_e)&&t[_e][e]&&(t[_e][e]=!1),n=Pt(n,{enumerable:X(0,!1)})):(T(t,_e)||pe(t,_e,X(1,{})),t[_e][e]=!0),je(t,e,n)):pe(t,e,n)},Re=function(t,e){B(t);for(var n,r=ee(e=ft(e)),i=0,o=r.length;o>i;)Ce(t,n=r[i++],e[n]);return t},Ne=function(t,e){return void 0===e?Pt(t):Re(Pt(t),e)},Le=function(t){var e=be.call(this,t=$(t,!0));return!(this===Se&&T(we,t)&&!T(Te,t))&&(!(e||!T(this,t)||!T(we,t)||T(this,_e)&&this[_e][t])||e)},Ie=function(t,e){if(t=ft(t),e=$(e,!0),t!==Se||!T(we,e)||T(Te,e)){var n=de(t,e);return!n||!T(we,e)||T(t,_e)&&t[_e][e]||(n.enumerable=!0),n}},Fe=function(t){for(var e,n=ve(ft(t)),r=[],i=0;n.length>i;)T(we,e=n[i++])||e==_e||e==he||r.push(e);return r},ze=function(t){for(var e,n=t===Se,r=ve(n?Te:ft(t)),i=[],o=0;r.length>o;)!T(we,e=r[o++])||n&&!T(Se,e)||i.push(we[e]);return i};Oe||(st((ye=function(){if(this instanceof ye)throw TypeError(\"Symbol is not a constructor!\");var t=M(arguments.length>0?arguments[0]:void 0),e=function(n){this===Se&&e.call(Te,n),T(this,_e)&&T(this[_e],t)&&(this[_e][t]=!1),je(this,t,X(1,n))};return H&&Pe&&je(Se,t,{configurable:!0,set:e}),Me(t)}).prototype,\"toString\",function(){return this._k}),fe.f=Ie,Y.f=Ce,ie.f=ce.f=Fe,te.f=Le,Qt.f=ze,Kt.f=function(t){return Me(jt(t))}),Z(Z.G+Z.W+Z.F*!Oe,{Symbol:ye});for(var Be=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),De=0;Be.length>De;)jt(Be[De++]);for(var He=bt(jt.store),Ve=0;He.length>Ve;)Zt(He[Ve++]);Z(Z.S+Z.F*!Oe,\"Symbol\",{for:function(t){return T(ke,t+=\"\")?ke[t]:ke[t]=ye(t)},keyFor:function(t){if(!Ae(t))throw TypeError(t+\" is not a symbol!\");for(var e in ke)if(ke[e]===t)return e},useSetter:function(){Pe=!0},useSimple:function(){Pe=!1}}),Z(Z.S+Z.F*!Oe,\"Object\",{create:Ne,defineProperty:Ce,defineProperties:Re,getOwnPropertyDescriptor:Ie,getOwnPropertyNames:Fe,getOwnPropertySymbols:ze});var We=D(function(){Qt.f(1)});Z(Z.S+Z.F*We,\"Object\",{getOwnPropertySymbols:function(t){return Qt.f(k(t))}}),ge&&Z(Z.S+Z.F*(!Oe||D(function(){var t=ye();return\"[null]\"!=me([t])||\"{}\"!=me({a:t})||\"{}\"!=me(Object(t))})),\"JSON\",{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(z(e)||void 0!==t)&&!Ae(t))return ne(e)||(e=function(t,e){if(\"function\"==typeof n&&(e=n.call(this,t,e)),!Ae(e))return e}),r[1]=e,me.apply(ge,r)}}),ye.prototype[xe]||J(ye.prototype,xe,ye.prototype.valueOf),Ct(ye,\"Symbol\"),Ct(Math,\"Math\",!0),Ct(O.JSON,\"JSON\",!0),Zt(\"asyncIterator\"),Zt(\"observable\");var Ge=S.Symbol,Ue=e(function(t){t.exports={default:Ge,__esModule:!0}});t(Ue);var $e=e(function(t,e){function n(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=n(Xt),i=n(Ue),o=\"function\"==typeof i.default&&\"symbol\"==typeof r.default?function(t){return typeof t}:function(t){return t&&\"function\"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?\"symbol\":typeof t};e.default=\"function\"==typeof i.default&&\"symbol\"===o(r.default)?function(t){return void 0===t?\"undefined\":o(t)}:function(t){return t&&\"function\"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?\"symbol\":void 0===t?\"undefined\":o(t)}}),Ke=t($e),Ye=t(e(function(t,e){e.__esModule=!0;var n=function(t){return t&&t.__esModule?t:{default:t}}($e);e.default=function(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!==(void 0===e?\"undefined\":(0,n.default)(e))&&\"function\"!=typeof e?t:e}}));Z(Z.S+Z.F*!H,\"Object\",{defineProperty:Y.f});var Xe=S.Object,Je=function(t,e,n){return Xe.defineProperty(t,e,n)},qe=e(function(t){t.exports={default:Je,__esModule:!0}});t(qe);var Ze=t(e(function(t,e){e.__esModule=!0;var n=function(t){return t&&t.__esModule?t:{default:t}}(qe);e.default=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),(0,n.default)(t,i.key,i)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()})),Qe=function(t,e){if(B(t),!z(e)&&null!==e)throw TypeError(e+\": can't set as prototype!\")},tn={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(t,e,n){try{(n=F(Function.call,fe.f(Object.prototype,\"__proto__\").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,r){return Qe(t,r),e?t.__proto__=r:n(t,r),t}}({},!1):void 0),check:Qe};Z(Z.S,\"Object\",{setPrototypeOf:tn.set});var en=S.Object.setPrototypeOf,nn=e(function(t){t.exports={default:en,__esModule:!0}});t(nn),Z(Z.S,\"Object\",{create:Pt});var rn=S.Object,on=function(t,e){return rn.create(t,e)},sn=e(function(t){t.exports={default:on,__esModule:!0}});t(sn);var an,un,cn,ln=t(e(function(t,e){function n(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=n(nn),i=n(sn),o=n($e);e.default=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+(void 0===e?\"undefined\":(0,o.default)(e)));t.prototype=(0,i.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(r.default?(0,r.default)(t,e):t.__proto__=e)}})),fn=jt(\"toStringTag\"),hn=\"Arguments\"==ct(function(){return arguments}()),dn=function(t,e){try{return t[e]}catch(t){}},pn=function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=dn(e=Object(t),fn))?n:hn?ct(e):\"Object\"==(r=ct(e))&&\"function\"==typeof e.callee?\"Arguments\":r},vn=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+\": incorrect invocation!\");return t},yn=function(t,e,n,r){try{return r?e(B(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&B(i.call(t)),e}},gn=jt(\"iterator\"),mn=Array.prototype,_n=function(t){return void 0!==t&&(at.Array===t||mn[gn]===t)},xn=jt(\"iterator\"),bn=S.getIteratorMethod=function(t){if(void 0!=t)return t[xn]||t[\"@@iterator\"]||at[pn(t)]},kn=e(function(t){var e={},n={},r=t.exports=function(t,r,i,o,s){var a,u,c,l,f=s?function(){return t}:bn(t),h=F(i,o,r?2:1),d=0;if(\"function\"!=typeof f)throw TypeError(t+\" is not iterable!\");if(_n(f)){for(a=dt(t.length);a>d;d++)if((l=r?h(B(u=t[d])[0],u[1]):h(t[d]))===e||l===n)return l}else for(c=f.call(t);!(u=c.next()).done;)if((l=yn(c,h,u.value,r))===e||l===n)return l};r.BREAK=e,r.RETURN=n}),wn=jt(\"species\"),Tn=function(t,e){var n,r=B(t).constructor;return void 0===r||void 0==(n=B(r)[wn])?e:I(n)},Sn=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)},On=O.process,En=O.setImmediate,Pn=O.clearImmediate,jn=O.MessageChannel,Mn=O.Dispatch,An=0,Cn={},Rn=function(){var t=+this;if(Cn.hasOwnProperty(t)){var e=Cn[t];delete Cn[t],e()}},Nn=function(t){Rn.call(t.data)};En&&Pn||(En=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Cn[++An]=function(){Sn(\"function\"==typeof t?t:Function(t),e)},an(An),An},Pn=function(t){delete Cn[t]},\"process\"==ct(On)?an=function(t){On.nextTick(F(Rn,t,1))}:Mn&&Mn.now?an=function(t){Mn.now(F(Rn,t,1))}:jn?(cn=(un=new jn).port2,un.port1.onmessage=Nn,an=F(cn.postMessage,cn,1)):O.addEventListener&&\"function\"==typeof postMessage&&!O.importScripts?(an=function(t){O.postMessage(t+\"\",\"*\")},O.addEventListener(\"message\",Nn,!1)):an=\"onreadystatechange\"in G(\"script\")?function(t){Tt.appendChild(G(\"script\")).onreadystatechange=function(){Tt.removeChild(this),Rn.call(t)}}:function(t){setTimeout(F(Rn,t,1),0)});var Ln={set:En,clear:Pn},In=Ln.set,Fn=O.MutationObserver||O.WebKitMutationObserver,zn=O.process,Bn=O.Promise,Dn=\"process\"==ct(zn),Hn={f:function(t){return new n(t)}},Vn=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}},Wn=O.navigator,Gn=Wn&&Wn.userAgent||\"\",Un=function(t,e){if(B(t),z(e)&&e.constructor===t)return e;var n=Hn.f(t);return(0,n.resolve)(e),n.promise},$n=jt(\"species\"),Kn=jt(\"iterator\"),Yn=!1;try{var Xn=[7][Kn]();Xn.return=function(){Yn=!0},Array.from(Xn,function(){throw 2})}catch(t){}var Jn,qn,Zn,Qn,tr=Ln.set,er=function(){var t,e,n,r=function(){var r,i;for(Dn&&(r=zn.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(Dn)n=function(){zn.nextTick(r)};else if(!Fn||O.navigator&&O.navigator.standalone)if(Bn&&Bn.resolve){var i=Bn.resolve(void 0);n=function(){i.then(r)}}else n=function(){In.call(O,r)};else{var o=!0,s=document.createTextNode(\"\");new Fn(r).observe(s,{characterData:!0}),n=function(){s.data=o=!o}}return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}(),nr=O.TypeError,rr=O.process,ir=rr&&rr.versions,or=ir&&ir.v8||\"\",sr=O.Promise,ar=\"process\"==pn(rr),ur=function(){},cr=qn=Hn.f,lr=!!function(){try{var t=sr.resolve(1),e=(t.constructor={})[jt(\"species\")]=function(t){t(ur,ur)};return(ar||\"function\"==typeof PromiseRejectionEvent)&&t.then(ur)instanceof e&&0!==or.indexOf(\"6.6\")&&-1===Gn.indexOf(\"Chrome/66\")}catch(t){}}(),fr=function(t){var e;return!(!z(t)||\"function\"!=typeof(e=t.then))&&e},hr=function(t,e){if(!t._n){t._n=!0;var n=t._c;er(function(){for(var r=t._v,i=1==t._s,o=0;n.length>o;)!function(e){var n,o,s,a=i?e.ok:e.fail,u=e.resolve,c=e.reject,l=e.domain;try{a?(i||(2==t._h&&vr(t),t._h=1),!0===a?n=r:(l&&l.enter(),n=a(r),l&&(l.exit(),s=!0)),n===e.promise?c(nr(\"Promise-chain cycle\")):(o=fr(n))?o.call(n,u,c):u(n)):c(r)}catch(t){l&&!s&&l.exit(),c(t)}}(n[o++]);t._c=[],t._n=!1,e&&!t._h&&dr(t)})}},dr=function(t){tr.call(O,function(){var e,n,r,i=t._v,o=pr(t);if(o&&(e=Vn(function(){ar?rr.emit(\"unhandledRejection\",i,t):(n=O.onunhandledrejection)?n({promise:t,reason:i}):(r=O.console)&&r.error&&r.error(\"Unhandled promise rejection\",i)}),t._h=ar||pr(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},pr=function(t){return 1!==t._h&&0===(t._a||t._c).length},vr=function(t){tr.call(O,function(){var e;ar?rr.emit(\"rejectionHandled\",t):(e=O.onrejectionhandled)&&e({promise:t,reason:t._v})})},yr=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),hr(e,!0))},gr=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw nr(\"Promise can't be resolved itself\");(e=fr(t))?er(function(){var r={_w:n,_d:!1};try{e.call(t,F(gr,r,1),F(yr,r,1))}catch(t){yr.call(r,t)}}):(n._v=t,n._s=1,hr(n,!1))}catch(t){yr.call({_w:n,_d:!1},t)}}};lr||(sr=function(t){vn(this,sr,\"Promise\",\"_h\"),I(t),Jn.call(this);try{t(F(gr,this,1),F(yr,this,1))}catch(t){yr.call(this,t)}},(Jn=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=function(t,e,n){for(var r in e)n&&t[r]?t[r]=e[r]:J(t,r,e[r]);return t}(sr.prototype,{then:function(t,e){var n=cr(Tn(this,sr));return n.ok=\"function\"!=typeof t||t,n.fail=\"function\"==typeof e&&e,n.domain=ar?rr.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&hr(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),Zn=function(){var t=new Jn;this.promise=t,this.resolve=F(gr,t,1),this.reject=F(yr,t,1)},Hn.f=cr=function(t){return t===sr||t===Qn?new Zn(t):qn(t)}),Z(Z.G+Z.W+Z.F*!lr,{Promise:sr}),Ct(sr,\"Promise\"),function(t){var e=\"function\"==typeof S[t]?S[t]:O[t];H&&e&&!e[$n]&&Y.f(e,$n,{configurable:!0,get:function(){return this}})}(\"Promise\"),Qn=S.Promise,Z(Z.S+Z.F*!lr,\"Promise\",{reject:function(t){var e=cr(this);return(0,e.reject)(t),e.promise}}),Z(Z.S+!0*Z.F,\"Promise\",{resolve:function(t){return Un(this===Qn?sr:this,t)}}),Z(Z.S+Z.F*!(lr&&function(t,e){if(!e&&!Yn)return!1;var n=!1;try{var r=[7],i=r[Kn]();i.next=function(){return{done:n=!0}},r[Kn]=function(){return i},t(r)}catch(t){}return n}(function(t){sr.all(t).catch(ur)})),\"Promise\",{all:function(t){var e=this,n=cr(e),r=n.resolve,i=n.reject,o=Vn(function(){var n=[],o=0,s=1;kn(t,!1,function(t){var a=o++,u=!1;n.push(void 0),s++,e.resolve(t).then(function(t){u||(u=!0,n[a]=t,--s||r(n))},i)}),--s||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=cr(e),r=n.reject,i=Vn(function(){kn(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}}),Z(Z.P+Z.R,\"Promise\",{finally:function(t){var e=Tn(this,S.Promise||O.Promise),n=\"function\"==typeof t;return this.then(n?function(n){return Un(e,t()).then(function(){return n})}:t,n?function(n){return Un(e,t()).then(function(){throw n})}:t)}}),Z(Z.S,\"Promise\",{try:function(t){var e=Hn.f(this),n=Vn(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}});var mr=S.Promise,_r=t(e(function(t){t.exports={default:mr,__esModule:!0}}));Q(\"keys\",function(){return function(t){return bt(k(t))}});var xr=S.Object.keys,br=t(e(function(t){t.exports={default:xr,__esModule:!0}})),kr=e(function(t){function e(){}function n(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function r(t,e,r,i,o){if(\"function\"!=typeof r)throw new TypeError(\"The listener must be a function\");var s=new n(r,i||t,o),u=a?a+e:e;return t._events[u]?t._events[u].fn?t._events[u]=[t._events[u],s]:t._events[u].push(s):(t._events[u]=s,t._eventsCount++),t}function i(t,n){0==--t._eventsCount?t._events=new e:delete t._events[n]}function o(){this._events=new e,this._eventsCount=0}var s=Object.prototype.hasOwnProperty,a=\"~\";Object.create&&(e.prototype=Object.create(null),(new e).__proto__||(a=!1)),o.prototype.eventNames=function(){var t,e,n=[];if(0===this._eventsCount)return n;for(e in t=this._events)s.call(t,e)&&n.push(a?e.slice(1):e);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},o.prototype.listeners=function(t){var e=a?a+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,i=n.length,o=new Array(i);r<i;r++)o[r]=n[r].fn;return o},o.prototype.listenerCount=function(t){var e=a?a+t:t,n=this._events[e];return n?n.fn?1:n.length:0},o.prototype.emit=function(t,e,n,r,i,o){var s=a?a+t:t;if(!this._events[s])return!1;var u,c,l=this._events[s],f=arguments.length;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),f){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,n),!0;case 4:return l.fn.call(l.context,e,n,r),!0;case 5:return l.fn.call(l.context,e,n,r,i),!0;case 6:return l.fn.call(l.context,e,n,r,i,o),!0}for(c=1,u=new Array(f-1);c<f;c++)u[c-1]=arguments[c];l.fn.apply(l.context,u)}else{var h,d=l.length;for(c=0;c<d;c++)switch(l[c].once&&this.removeListener(t,l[c].fn,void 0,!0),f){case 1:l[c].fn.call(l[c].context);break;case 2:l[c].fn.call(l[c].context,e);break;case 3:l[c].fn.call(l[c].context,e,n);break;case 4:l[c].fn.call(l[c].context,e,n,r);break;default:if(!u)for(h=1,u=new Array(f-1);h<f;h++)u[h-1]=arguments[h];l[c].fn.apply(l[c].context,u)}}return!0},o.prototype.on=function(t,e,n){return r(this,t,e,n,!1)},o.prototype.once=function(t,e,n){return r(this,t,e,n,!0)},o.prototype.removeListener=function(t,e,n,r){var o=a?a+t:t;if(!this._events[o])return this;if(!e)return i(this,o),this;var s=this._events[o];if(s.fn)s.fn!==e||r&&!s.once||n&&s.context!==n||i(this,o);else{for(var u=0,c=[],l=s.length;u<l;u++)(s[u].fn!==e||r&&!s[u].once||n&&s[u].context!==n)&&c.push(s[u]);c.length?this._events[o]=1===c.length?c[0]:c:i(this,o)}return this},o.prototype.removeAllListeners=function(t){var n;return t?(n=a?a+t:t,this._events[n]&&i(this,n)):(this._events=new e,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=a,o.EventEmitter=o,t.exports=o}),wr=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url,r=e.method,i=void 0===r?\"GET\":r,o=e.type,s=void 0===o?\"arraybuffer\":o,a=e.timeout,u=void 0===a?1e4:a,c=e.data,l=void 0===c?{}:c,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return nt(this,t),new _r(function(t,e){var r=new window.XMLHttpRequest,o=i.toUpperCase(),a=[];s&&(r.responseType=s),u&&(r.timeout=u);for(var c in l)a.push(\"k=\"+l[c]);if(r.onload=function(){200===r.status||206===r.status?t({context:f,res:r}):e(new Error({context:f,res:r,type:\"error\"}))},r.onerror=function(t){e(new Error({context:f,res:r,type:\"error\"}))},r.ontimeout=function(t){e(new Error({context:f,res:r,type:\"error\"}))},r.onabort=function(){e(new Error({context:f,res:r,type:\"error\"}))},\"GET\"===o)r.open(o,\"\"+n),r.send();else{if(\"post\"!==o)throw new Error(\"xhr \"+o+\" is not supported\");r.open(o,n),r.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"),r.send(a.join(\"&\"))}})},Tr=/^WEBVTT/,Sr=/^STYLE+$/,Or=/^\\:\\:cue/,Er=/^}+$/,Pr=/^\\[Script Info\\].*/,jr=[/[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}-->[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}/,/[0-9]{2}:[0-9]{2}\\.[0-9]{3}-->[0-9]{2}:[0-9]{2}\\.[0-9]{3}/,/[0-9]{2}\\.[0-9]{3}-->[0-9]{2}\\.[0-9]{3}/],Mr=/^Format:\\s/,Ar=/^Style:\\s/,Cr=/^Dialogue:\\s/,Rr=function(){function t(){nt(this,t)}return Ze(t,null,[{key:\"parse\",value:function(e,n){var r=t.checkFormat(e);r||n({format:r});try{var i=[];\"ass\"===r?i=t.parseASS(e):\"vtt\"===r&&(i=t.parseVTT(e)),n({format:r,list:i.list,styles:i.styles})}catch(t){console.error(t),n({format:r},t)}}},{key:\"parseASSItem\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=t.split(\",\"),i={},s=\"\";try{var a=n.length-e.length;return s=a>0?n.splice(e.length-1,a+1).join(\",\")+\"\":n[n.length-1]+\"\",s=s.replace(/\\\\n+/g,\"\"),s=o(s),n[e.length-1]=s,e.map(function(t,e){\"end\"===t||\"start\"===t?i[t]=r(n[e].split(\":\")):\"text\"===t?i[t]=[n[e]]:\"layer\"===t?(i[t]=[n[e]],i.textTag=[n[e]]):i[t]=\"style\"===t?[n[e]]:Number(n[e])?Number(n[e]):n[e]}),i}catch(t){return console.error(t),{}}}},{key:\"parseASS\",value:function(e){for(var n=e.split(\"\\n\"),r=[],i=0,o=0,s=[],a=[],u=null;i<n.length;){if(Mr.test(n[i]))a=(a=n[i].replace(Mr,\"\").replace(/\\s+/g,\"\").split(\",\")).map(function(t){return t.toLocaleLowerCase()});else if(Ar.test(n[i]))s.push(n[i].replace(Ar,\"\").replace(/\\s+/g,\"\"));else if(Cr.test(n[i])){var c=t.parseASSItem(n[i].replace(Cr,\"\"),a);if(u&&c.start===u.start&&c.end===u.end)try{var l=u,f=l.text,h=l.textTag,d=l.style;f.push(c.text[0]),h.push(c.textTag[0]),d.push(c.style[0])}catch(t){console.error(t)}else{u=c;var p=null;o%50==0?((p={start:u.start,end:u.end,list:[]}).list.push(u),r.push(p)):((p=r[r.length-1]).end=u.end,p.list.push(u)),o++}}i++}return{list:r,style:{}}}},{key:\"parseVTTStyle\",value:function(t,e){var n=t.split(\":\");if(n.length>1){var r=n[0].trim().split(\"-\"),i=\"\";r.length>1?r.map(function(t,e){i+=0===e?t:t.charAt(0).toUpperCase()+t.slice(1)}):i=r[0],e[i]=n[1].trim().replace(/;$/,\"\")}return e}},{key:\"parseVTT\",value:function(t){for(var e=(t=t.replace(Tr,\"\")).split(\"\\n\"),n=[],r=0,o=0,a=null,u=!1,c=!1,l=null,f=null,h=[];r<e.length;){var d=s(r,e).trim();if(!d||u&&i(d))u=!d;else if(Or.test(d)&&Sr.test(s(r-1,e).trim())){c=!0;var p=/\\((.+?)\\)/g.exec(d);f=p?p[1]:\"\",l=\"\"}else if(c)Er.test(d)?(h.push({key:f,style:l}),l=null,f=null,c=!1):l+=d;else if(d){u=!1;var v=this.checkIsTime(e[r]);if(v){var y=this.parseVttTime(v);if(!a||y.start!==a.start||y.end!==a.end){(a=y).text=[],a.textTag=[];var g=null;o%50==0?((g={start:a.start,end:a.end,list:[]}).list.push(a),n.push(g)):((g=n[n.length-1]).end=a.end,g.list.push(a)),o++}}else if(a){var m=a,_=m.text,x=m.textTag,b=this.parseVttText(e[r]);_.push(b.text),x.push(b.tag)}u=!1}r++}return{list:n,styles:h}}},{key:\"checkIsTime\",value:function(t){t=t.replace(/\\s+/g,\"\");for(var e=0,n=null;e<jr.length&&!(n=jr[e].exec(t));)e++;return n?n[0]:null}},{key:\"parseVttText\",value:function(t){var e=/^(<?.+?>)/g.exec(t),n=\"\",r=\"default\";if(e){r=e[0].replace(/\\<|\\>|\\&/g,\"\");var i=RegExp(\"^<\"+r+\">(([\\\\s\\\\S])*?)</\"+r+\">$\").exec(t);i?n=i[1]:(n=t,r=\"\")}else n=t;for(var s=/<(\\w+).(\\w+)>/g,a=s.exec(n);a&&a.length>2;)n=n.replace(a[0],\"<\"+a[1]+' class=\"'+a[2]+'\">'),a=s.exec(n);return{tag:r,text:o(n.replace(/\\\\n+/g,\"<br/>\"))}}},{key:\"parseVttTime\",value:function(t){var e=t.split(\"--\\x3e\"),n=void 0,i=0;if(2===e.length){var o=e[0].split(\":\"),s=e[1].split(\":\");n=r(o),i=r(s)}return{start:n,end:i,time:t}}},{key:\"isVTT\",value:function(t){return Tr.test(t)}},{key:\"isASS\",value:function(t){return Pr.test(t)}},{key:\"checkFormat\",value:function(t){return t?Tr.test(t)?\"vtt\":Pr.test(t)?\"ass\":null:null}}]),t}(),Nr=function(){function t(){var e=this;nt(this,t),this.__handlers=[],window.ResizeObserver&&(this.observer=new window.ResizeObserver(function(t){e.__trigger(t)}))}return Ze(t,[{key:\"addObserver\",value:function(t,e){if(this.observer){this.observer&&this.observer.observe(t);for(var n=this.__handlers,r=-1,i=0;i<n.length;i++)n[i]&&t===n[i].target&&(r=i);r>-1?this.__handlers[r].handler.push(e):this.__handlers.push({target:t,handler:[e]})}}},{key:\"unObserver\",value:function(t){var e=-1;this.__handlers.map(function(n,r){t===n.target&&(e=r)}),this.observer&&this.observer.unobserve(t),e>-1&&this.__handlers.splice(e,1)}},{key:\"destroyObserver\",value:function(){this.observer&&this.observer.disconnect(),this.observer=null,this.__handlers=null}},{key:\"__runHandler\",value:function(t,e){for(var n=this.__handlers,r=0;r<n.length;r++)if(n[r]&&t===n[r].target){n[r].handler&&n[r].handler.map(function(n){try{n(t,e)}catch(t){console.error(t)}});break}}},{key:\"__trigger\",value:function(t){var e=this;t.map(function(t){var n=t.contentRect;e.__runHandler(t.target,n)})}}]),t}(),Lr=null;!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&\"undefined\"!=typeof document){var r=document.head||document.getElementsByTagName(\"head\")[0],i=document.createElement(\"style\");i.type=\"text/css\",\"top\"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}('xg-text-track.xg-text-track {\\n font-family: \"PingFang SC\",\"SF Pro SC\",\"SF Pro Text\",\"SF Pro Icons\",\"Helvetica Neue\",\"Helvetica\",\"Arial\",sans-serif;\\n -webkit-font-smoothing: antialiased;\\n position: absolute;\\n bottom: 0;\\n color: #fff;\\n left: 0;\\n right: 0;\\n pointer-events: none;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center; }\\n xg-text-track.xg-text-track.text-track-no-fitvideo {\\n margin-bottom: 2%; }\\n xg-text-track.xg-text-track.text-track-hide {\\n opacity: 0;\\n visibility: hidden; }\\n xg-text-track.xg-text-track.text-track-show {\\n opacity: 1;\\n visibility: visible; }\\n xg-text-track.xg-text-track xg-text-track-inner {\\n display: block;\\n max-width: 92%; }\\n xg-text-track.xg-text-track xg-text-track-span {\\n display: -webkit-box;\\n text-align: center;\\n text-overflow: ellipsis;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n padding: 1px 4px;\\n -webkit-line-clamp: 1;\\n line-height: 120%;\\n word-break: break-word; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-deputy {\\n font-size: 75%; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-single {\\n -webkit-line-clamp: 1; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-double {\\n -webkit-line-clamp: 2; }\\n xg-text-track.xg-text-track xg-text-track-span.text-track-three {\\n -webkit-line-clamp: 3; }\\n xg-text-track.xg-text-track.text-track-bg xg-text-track-inner {\\n background-color: rgba(0, 0, 0, .54);\\n border-radius: 2px; }\\n xg-text-track.xg-text-track.text-track-stroke xg-text-track-inner {\\n background-color: none;\\n border-radius: 0;\\n text-shadow: -1px 1px 0 rgba(0, 0, 0, .7), 1px 1px 0 rgba(0, 0, 0, .7), 1px -1px 0 rgba(0, 0, 0, .7), -1px -1px 0 rgba(0, 0, 0, .7); }\\n');var Ir=[{code:0,msg:\"SUCCESS\"},{code:1,msg:\"LOAD_ERROR\"},{code:2,msg:\"PARSER_ERROR\"},{code:3,msg:\"FORMAT_NOT_SUPPORTED\"},{code:4,msg:\"ID_OR_LANGUAGE_NOT_EXIST\"},{code:5,msg:\"PARAMETERS_ERROR\"},{code:6,msg:\"ABORT\"},{code:7,msg:\"UNKNOWN\"}],Fr={RESIZE:\"resize\"},zr=!1;return function(t){function e(t){nt(this,e);var n=Ye(this,(e.__proto__||et(e)).call(this));return zr=p(),n.currentText=null,n.textTrack=[],n._cid=-1,n._gid=-1,n._cids=[],n._iId=null,n._iC=0,n.player=null,n.root=null,n.config={line:\"double\",bottom:0,mode:\"stroke\",defaultOpen:!1,baseSizeX:49,baseSizeY:28,minSize:16,minMobileSize:13,fitVideo:!0,offsetBottom:2,fontColor:\"#fff\"},n._ctime=0,n._loadingTrack={},br(n.config).map(function(e){void 0!==t[e]&&null!==t[e]&&(n.config[e]=t[e])}),n._isOpen=n.config.defaultOpen||!1,n._videoMeta={scale:0,videoHeight:0,videoWidth:0,lwidth:0,lheight:0,vWidth:0,vHeight:0,vBottom:0,vLeft:0,marginBottom:0},t.subTitles&&\"Array\"===h(t.subTitles)?(t.player&&n.attachPlayer(t.player),n.setSubTitles(t.subTitles),n):Ye(n)}return ln(e,t),Ze(e,[{key:\"version\",get:function(){return\"1.0.12\"}}]),Ze(e,[{key:\"setSubTitles\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=this._isOpen||n;r&&this.innerRoot&&this.switchOff(),this.currentText=null,this.textTrack=[],t.map(function(t){var n={};br(t).map(function(e){n[e]=t[e]}),n.isDefault&&(e.currentText=n),e.textTrack.push(n)}),this.currentText&&_(this.currentText).then(function(t){e.addStyles(t),i&&e.switch()})}},{key:\"addStyles\",value:function(t){var e=t.styles,n=t.format;e&&\"vtt\"===n&&(e.map(function(t){t.key||(t.key=\"xg-text-track-span\")}),v(e,\"xg-text-track\"))}},{key:\"attachPlayer\",value:function(t){var e=this;if(t){this.player&&this.detachPlayer();var n=this.config,r=n.fontColor,i=n.mode,o=n.fitVideo;this.player=t,this.root=document.createElement(\"xg-text-track\"),this.root.className=\"xg-text-track\",!this._isOpen&&u(this.root,\"text-track-hide\"),!o&&u(this.root,\"text-track-no-fitvideo\"),i&&u(this.root,\"text-track-\"+i),this.innerRoot=document.createElement(\"xg-text-track-inner\"),this.root.appendChild(this.innerRoot),r&&(this.root.style.color=r),this.currentText&&[\"language\",\"id\",\"label\"].map(function(t){e.root.setAttribute(\"data-\"+t,e.currentText[t]||\"\")}),this.player.root.appendChild(this.root),[\"destroy\",\"__onTimeupdate\",\"_onResize\"].map(function(t){e[t]=e[t].bind(e)}),this.player.on(\"destroy\",this.destroy),this.player.on(\"timeupdate\",this.__onTimeupdate),y(t.root,this._onResize)}}},{key:\"detachPlayer\",value:function(){var t=this.player;t&&(t.off(\"destroy\",this.destroy),t.off(\"timeupdate\",this.__onTimeupdate),t.root&&(g(t.root,this._onResize),t.root.removeChild(this.root)),this.innerRoot=null,this.root=null,this.player=null)}},{key:\"switch\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:\"\",language:\"\"};return this._loadingTrack=e,new _r(function(n,r){if(!e.id&&!e.language){if(t.currentText){t._loadingTrack={},t._updateCurrent(t.currentText),t._isOpen=!0,t.show();var i=m(0,{message:\"switch default subtitle success\"});return void n(i)}var o=m(5,{message:\"no default subtitle\"});return void r(o)}if(t.currentText&&x(e,t.currentText))t._loadingTrack={},t._updateCurrent(t.currentText),t._isOpen=!0,t.show(),n(m(0));else{for(var s=null,a=0;a<t.textTrack.length;a++)if(x(e,t.textTrack[a])){s=t.textTrack[a];break}if(s)s.list?(t._loadingTrack={},t._updateCurrent(s),t._isOpen=!0,t.show(),n(m(0))):_(s).then(function(e){if(t.addStyles(e),t._loadingTrack.id===s.id||t._loadingTrack.language===e.language)t._loadingTrack={},t._updateCurrent(e),t._isOpen=!0,t.show(),n(m(0));else{var i=m(6,{message:\"check _loadingTrack fail id: \"+t._loadingTrack.id+\" nextSubtitle:\"+e.id});console.trace(i),r(i)}}).catch(function(t){r(t)});else{var u=m(4,new Error(\"The is no subtitle with id:[{\"+e.id+\"}] or language:[\"+e.language+\"]\"));console.trace(u),r(u)}}})}},{key:\"switchOff\",value:function(){this._isOpen=!1,this.hide()}},{key:\"_updateCurrent\",value:function(t){var e=this;this.currentText=t,[\"language\",\"id\",\"label\"].map(function(t){e.root.setAttribute(\"data-\"+t,e.currentText[t]||\"\")}),this.__remove(this._cids);var n=this.player.currentTime;this._cids=[],this._gid=-1,this._cid=-1,this._update(n)}},{key:\"__loadAll\",value:function(){this.textTrack.map(function(t){_(t)})}},{key:\"getDelCid\",value:function(t,e){for(var n=[],r=0;r<t.length;r++)e.includes(t[r])||n.push(t[r]);return n}},{key:\"getNewCid\",value:function(t,e){for(var n=[],r=0;r<e.length;r++)t.includes(e[r])||n.push(e[r]);return n}},{key:\"_update\",value:function(t){var e=this,n=l(t,this.currentText.list,this._gid),r=[];if(n>-1&&(r=f(t,this.currentText.list[n].list,this._cid)),r.length<1)return this._cids.length>0&&this.__remove(this._cids),void(this._cids=[]);if(this._cids!==r||n!==this._gid){this._gid=n,this._cid=r[0];var i=this.getDelCid(this._cids,r),o=this.getNewCid(this._cids,r);this._cids=r,this.__remove(i);var s=[];o.map(function(t){var r=e.currentText.list[n].list[t];r.index=t,s.push(r)}),this.__render(s,t)}}},{key:\"__onTimeupdate\",value:function(){if(this._isOpen){var t=this.player.video,e=t.videoWidth,n=t.videoHeight;!this._videoMeta.scale&&e&&n&&this._onResize(this.player.root);var r=this.player.currentTime;Math.round(Math.abs(1e3*r-this._ctime))<200||(this._ctime=1e3*r,this.currentText&&this.currentText.list&&this._update(r))}}},{key:\"_onResize\",value:function(t){var e=this._videoMeta;if(t&&t instanceof window.Element||(t=this.player.root),this._iId&&(clearTimeout(this._iId),this._iId=null),!e.scale){if(!this.player.video)return;var n=this.player.video,r=n.videoWidth,i=n.videoHeight;if(!r||!i)return;e.videoWidth=r,e.videoHeight=i,e.scale=parseInt(i/r*100,10)}this.__startResize(t)}},{key:\"resize\",value:function(t,e){var n=this,r=this.config,i=r.baseSizeX,o=r.baseSizeY,s=r.minMobileSize,a=r.minSize,u=r.fitVideo,c=r.offsetBottom,l=this._videoMeta.scale;this._videoMeta.lwidth=t,this._videoMeta.lheight=e;var f=void 0,h=0;e/t*100>=l?(h=parseInt(l*t,10)/100,f=t):(h=e,f=parseInt(e/l*100,10)),this._videoMeta.vWidth=f,this._videoMeta.vHeight=h;var d=0,p=0;l>120?(d=o,p=parseInt(d*h/1080,10)):(d=i,p=parseInt(d*f/1920,10));var v=zr?s:a,y={fontSize:p=p<v?v:p>d?d:p},g=parseInt((e-h)/2,10),m=parseInt((t-f)/2,10),_=parseInt(h*c,10)/100;this._videoMeta.vBottom=g,this._videoMeta.vLeft=m,this._videoMeta.marginBottom=_,u&&(y.bottom=g+_,y.left=y.right=m),br(y).map(function(t){n.root.style[t]=y[t]+\"px\"}),this.emit(Fr.RESIZE,{vLeft:m,vBottom:g,marginBottom:_,vWidth:f,vHeight:h,fontSize:p,scale:l})}},{key:\"__startResize\",value:function(t){var e=this,n=t.getBoundingClientRect(),r=this._videoMeta,i=n.width,o=n.height;if(this._iId&&(clearTimeout(this._iId),this._iId=null),i>0&&o>0&&(i!==r.lwidth||o!==r.lheight))this._iC=0,this.resize(i,o);else{if(this._iC>=5)return void(this._iC=0);this._iC++,this._iId=setTimeout(function(){e.__startResize(t)},50)}}},{key:\"__remove\",value:function(t){var e=this;if(t&&!(t.length<1)){for(var n=this.innerRoot.children,r=[],i=0;i<n.length;i++){var o=Number(n[i].getAttribute(\"data-index\"));t.includes(o)&&r.push(n[i])}r.map(function(t){e.innerRoot.removeChild(t)})}}},{key:\"__render\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.length>0&&e.map(function(e){var n=\"text-track-\"+t.config.line;e.text.map(function(r,i){i>0&&(n+=\" text-track-deputy\");var o={\"data-tag\":e.textTag[i],\"data-start\":e.start,\"data-end\":e.end,\"data-index\":e.index};t.innerRoot.appendChild(d(\"xg-text-track-span\",r,o,n))})})}},{key:\"show\",value:function(){c(this.root,\"text-track-hide\")}},{key:\"hide\",value:function(){u(this.root,\"text-track-hide\"),this.innerRoot.innerHTML=\"\"}},{key:\"destroy\",value:function(){this.detachPlayer(),this.removeAllListeners(),this.player=null,this.textTrack=null}},{key:\"marginBottom\",get:function(){var t=this._videoMeta,e=t.bottom,n=t.marginBottom;return this.config.fitVideo?e+n:n}}]),e}(kr)});\n//# sourceMappingURL=index.min.js.map\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"],"sourceRoot":""}