xgplayer 2.32.2 → 2.32.3

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 (188) hide show
  1. package/browser/controls/danmu.js +3 -1
  2. package/browser/controls/errorRetry.js +1 -1
  3. package/browser/controls/nativeTextTrack.js +1 -1
  4. package/browser/core_player.js +1 -1
  5. package/browser/core_player.js.map +1 -1
  6. package/browser/index.js +7 -5
  7. package/browser/index.js.map +1 -1
  8. package/browser/simple_player.js +1 -1
  9. package/browser/simple_player.js.map +1 -1
  10. package/dist/controls/danmu.js +3 -1
  11. package/dist/controls/errorRetry.js +1 -1
  12. package/dist/controls/nativeTextTrack.js +1 -1
  13. package/dist/core_player.js +6 -7
  14. package/dist/core_player.js.map +1 -1
  15. package/dist/index.js +2881 -1887
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.min.css +1 -0
  18. package/dist/index.min.js +2 -0
  19. package/dist/index.min.js.map +1 -0
  20. package/dist/simple_player.js +6 -7
  21. package/dist/simple_player.js.map +1 -1
  22. package/es/controls/danmu.js +3 -1
  23. package/es/controls/errorRetry.js +1 -1
  24. package/es/controls/nativeTextTrack.js +1 -1
  25. package/es/core_player.js +1 -1
  26. package/es/core_player.js.map +1 -1
  27. package/es/index.js +7 -5
  28. package/es/index.js.map +1 -1
  29. package/es/simple_player.js +1 -1
  30. package/es/simple_player.js.map +1 -1
  31. package/package.json +11 -2
  32. package/types/index.d.ts +0 -11
  33. package/postcss.config.js +0 -7
  34. package/src/bind/airplay.js +0 -10
  35. package/src/bind/cssFullscreen.js +0 -10
  36. package/src/bind/danmu.js +0 -10
  37. package/src/bind/definition.js +0 -10
  38. package/src/bind/download.js +0 -10
  39. package/src/bind/enter.js +0 -8
  40. package/src/bind/error.js +0 -8
  41. package/src/bind/errorRetry.js +0 -8
  42. package/src/bind/flex.js +0 -8
  43. package/src/bind/fullscreen.js +0 -10
  44. package/src/bind/i18n.js +0 -8
  45. package/src/bind/keyboard.js +0 -8
  46. package/src/bind/loading.js +0 -8
  47. package/src/bind/localPreview.js +0 -10
  48. package/src/bind/memoryPlay.js +0 -10
  49. package/src/bind/miniplayer.js +0 -10
  50. package/src/bind/mobile.js +0 -8
  51. package/src/bind/nativeTextTrack.js +0 -8
  52. package/src/bind/pc.js +0 -8
  53. package/src/bind/pip.js +0 -10
  54. package/src/bind/play.js +0 -10
  55. package/src/bind/playNext.js +0 -10
  56. package/src/bind/playbackRate.js +0 -8
  57. package/src/bind/poster.js +0 -8
  58. package/src/bind/progress.js +0 -8
  59. package/src/bind/reload.js +0 -10
  60. package/src/bind/replay.js +0 -10
  61. package/src/bind/rotate.js +0 -10
  62. package/src/bind/screenShot.js +0 -10
  63. package/src/bind/stallCheck.js +0 -8
  64. package/src/bind/start.js +0 -10
  65. package/src/bind/textTrack.js +0 -8
  66. package/src/bind/time.js +0 -8
  67. package/src/bind/volume.js +0 -10
  68. package/src/controls/airplay.js +0 -20
  69. package/src/controls/cssFullscreen.js +0 -49
  70. package/src/controls/danmu.js +0 -75
  71. package/src/controls/definition.js +0 -13
  72. package/src/controls/download.js +0 -28
  73. package/src/controls/errorRetry.js +0 -132
  74. package/src/controls/fullscreen.js +0 -145
  75. package/src/controls/keyboard.js +0 -214
  76. package/src/controls/localPreview.js +0 -32
  77. package/src/controls/memoryPlay.js +0 -14
  78. package/src/controls/miniplayer.js +0 -128
  79. package/src/controls/mobile.js +0 -100
  80. package/src/controls/pc.js +0 -123
  81. package/src/controls/pip.js +0 -52
  82. package/src/controls/play.js +0 -34
  83. package/src/controls/playNext.js +0 -29
  84. package/src/controls/reload.js +0 -24
  85. package/src/controls/replay.js +0 -30
  86. package/src/controls/rotate.js +0 -99
  87. package/src/controls/screenShot.js +0 -65
  88. package/src/controls/stallCheck.js +0 -38
  89. package/src/controls/start.js +0 -60
  90. package/src/controls/textTrack.js +0 -182
  91. package/src/controls/volume.js +0 -178
  92. package/src/controls.js +0 -36
  93. package/src/core_player.js +0 -13
  94. package/src/error.js +0 -74
  95. package/src/index.js +0 -57
  96. package/src/player.js +0 -553
  97. package/src/proxy.js +0 -495
  98. package/src/simple_player.js +0 -42
  99. package/src/skin/assets/airplay.svg +0 -1
  100. package/src/skin/assets/download.svg +0 -14
  101. package/src/skin/assets/exitCssFull.svg +0 -3
  102. package/src/skin/assets/exitFull.svg +0 -3
  103. package/src/skin/assets/loading.svg +0 -3
  104. package/src/skin/assets/panel.svg +0 -4
  105. package/src/skin/assets/pause.svg +0 -3
  106. package/src/skin/assets/play.svg +0 -3
  107. package/src/skin/assets/playNext.svg +0 -3
  108. package/src/skin/assets/reload.svg +0 -3
  109. package/src/skin/assets/replay.svg +0 -3
  110. package/src/skin/assets/requestCssFull.svg +0 -3
  111. package/src/skin/assets/requestFull.svg +0 -3
  112. package/src/skin/assets/rotate.svg +0 -11
  113. package/src/skin/assets/startPause.svg +0 -3
  114. package/src/skin/assets/startPlay.svg +0 -3
  115. package/src/skin/assets/volumeLarge.svg +0 -4
  116. package/src/skin/assets/volumeMuted.svg +0 -4
  117. package/src/skin/assets/volumeSmall.svg +0 -4
  118. package/src/skin/controls/airplay.js +0 -44
  119. package/src/skin/controls/cssFullscreen.js +0 -36
  120. package/src/skin/controls/danmu.js +0 -214
  121. package/src/skin/controls/definition.js +0 -251
  122. package/src/skin/controls/download.js +0 -29
  123. package/src/skin/controls/enter.js +0 -21
  124. package/src/skin/controls/error.js +0 -57
  125. package/src/skin/controls/flex.js +0 -13
  126. package/src/skin/controls/fullscreen.js +0 -43
  127. package/src/skin/controls/i18n.js +0 -168
  128. package/src/skin/controls/loading.js +0 -17
  129. package/src/skin/controls/localPreview.js +0 -18
  130. package/src/skin/controls/memoryPlay.js +0 -39
  131. package/src/skin/controls/miniplayer.js +0 -26
  132. package/src/skin/controls/nativeTextTrack.js +0 -153
  133. package/src/skin/controls/pip.js +0 -26
  134. package/src/skin/controls/play.js +0 -43
  135. package/src/skin/controls/playNext.js +0 -41
  136. package/src/skin/controls/playbackRate.js +0 -141
  137. package/src/skin/controls/poster.js +0 -18
  138. package/src/skin/controls/progress.js +0 -407
  139. package/src/skin/controls/reload.js +0 -29
  140. package/src/skin/controls/replay.js +0 -56
  141. package/src/skin/controls/rotate.js +0 -29
  142. package/src/skin/controls/screenShot.js +0 -27
  143. package/src/skin/controls/start.js +0 -62
  144. package/src/skin/controls/textTrack.js +0 -113
  145. package/src/skin/controls/time.js +0 -40
  146. package/src/skin/controls/volume.js +0 -63
  147. package/src/skin/index.js +0 -63
  148. package/src/skin/style/common/animation.scss +0 -16
  149. package/src/skin/style/common/svg-url.scss +0 -70
  150. package/src/skin/style/controls/airplay.scss +0 -35
  151. package/src/skin/style/controls/controls.scss +0 -40
  152. package/src/skin/style/controls/cssfullscreen.scss +0 -103
  153. package/src/skin/style/controls/danmu.scss +0 -333
  154. package/src/skin/style/controls/definition.scss +0 -76
  155. package/src/skin/style/controls/download.scss +0 -45
  156. package/src/skin/style/controls/enter.scss +0 -55
  157. package/src/skin/style/controls/error.scss +0 -34
  158. package/src/skin/style/controls/fullscreen.scss +0 -60
  159. package/src/skin/style/controls/icon.scss +0 -12
  160. package/src/skin/style/controls/live.scss +0 -9
  161. package/src/skin/style/controls/loading.scss +0 -44
  162. package/src/skin/style/controls/memoryPlay.scss +0 -28
  163. package/src/skin/style/controls/miniplayer.scss +0 -104
  164. package/src/skin/style/controls/pip.scss +0 -42
  165. package/src/skin/style/controls/placeholder.scss +0 -7
  166. package/src/skin/style/controls/play.scss +0 -79
  167. package/src/skin/style/controls/playNext.scss +0 -44
  168. package/src/skin/style/controls/playbackRate.scss +0 -82
  169. package/src/skin/style/controls/poster.scss +0 -19
  170. package/src/skin/style/controls/progress.scss +0 -182
  171. package/src/skin/style/controls/reload.scss +0 -43
  172. package/src/skin/style/controls/replay.scss +0 -46
  173. package/src/skin/style/controls/rotate.scss +0 -41
  174. package/src/skin/style/controls/screenShot.scss +0 -42
  175. package/src/skin/style/controls/start.scss +0 -78
  176. package/src/skin/style/controls/textTrack.scss +0 -87
  177. package/src/skin/style/controls/time.scss +0 -24
  178. package/src/skin/style/controls/tips.scss +0 -24
  179. package/src/skin/style/controls/videoProxy.scss +0 -6
  180. package/src/skin/style/controls/volume.scss +0 -143
  181. package/src/skin/style/index.scss +0 -88
  182. package/src/utils/sniffer.js +0 -47
  183. package/src/utils/url.js +0 -10
  184. package/src/utils/util.js +0 -358
  185. package/src/utils/xgplayerTimeRange.js +0 -17
  186. package/src/version.js +0 -7
  187. package/version.json +0 -3
  188. package/webpack.config.js +0 -168
package/src/utils/util.js DELETED
@@ -1,358 +0,0 @@
1
- import XgplayerTimeRange from './xgplayerTimeRange'
2
-
3
- export function createDom(el = 'div', tpl = '', attrs = {}, cname = '') {
4
- let dom = document.createElement(el)
5
- dom.className = cname
6
- dom.innerHTML = tpl
7
- Object.keys(attrs).forEach(item => {
8
- let key = item
9
- let value = attrs[item]
10
- if (el === 'video' || el === 'audio') {
11
- if (value) {
12
- dom.setAttribute(key, value)
13
- }
14
- } else {
15
- dom.setAttribute(key, value)
16
- }
17
- })
18
- return dom
19
- }
20
-
21
- export function hasClass(el, className) {
22
- if (!el) {
23
- return false;
24
- }
25
-
26
- if (el.classList) {
27
- return Array.prototype.some.call(el.classList, item => item === className)
28
- } else if (el.className) {
29
- return !!el.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'))
30
- } else {
31
- return false;
32
- }
33
- }
34
-
35
- export function addClass(el, className) {
36
- if (!el) {
37
- return;
38
- }
39
-
40
- if (el.classList) {
41
- className.replace(/(^\s+|\s+$)/g, '').split(/\s+/g).forEach(item => {
42
- item && el.classList.add(item)
43
- })
44
- } else if (!hasClass(el, className)) {
45
- el.className += ' ' + className
46
- }
47
- }
48
-
49
- export function removeClass(el, className) {
50
- if (!el) {
51
- return;
52
- }
53
-
54
- if (el.classList) {
55
- className.split(/\s+/g).forEach(item => {
56
- el.classList.remove(item)
57
- })
58
- } else if (hasClass(el, className)) {
59
- className.split(/\s+/g).forEach(item => {
60
- let reg = new RegExp('(\\s|^)' + item + '(\\s|$)')
61
- el.className = el.className.replace(reg, ' ')
62
- })
63
- }
64
- }
65
-
66
- export function toggleClass(el, className) {
67
- if (!el) {
68
- return;
69
- }
70
-
71
- className.split(/\s+/g).forEach(item => {
72
- if (hasClass(el, item)) {
73
- removeClass(el, item)
74
- } else {
75
- addClass(el, item)
76
- }
77
- })
78
- }
79
-
80
- export function findDom(el = document, sel) {
81
- let dom
82
- // fix querySelector IDs that start with a digit
83
- // https://stackoverflow.com/questions/37270787/uncaught-syntaxerror-failed-to-execute-queryselector-on-document
84
- try {
85
- dom = el.querySelector(sel)
86
- } catch (e) {
87
- if (sel.indexOf('#') === 0) {
88
- dom = el.getElementById(sel.slice(1))
89
- }
90
- }
91
- return dom
92
- }
93
-
94
- export function padStart(str, length, pad) {
95
- let charstr = String(pad)
96
- let len = length >> 0
97
- let maxlen = Math.ceil(len / charstr.length)
98
- let chars = []
99
- let r = String(str)
100
- while (maxlen--) {
101
- chars.push(charstr)
102
- }
103
- return chars.join('').substring(0, len - r.length) + r
104
- }
105
-
106
- export function format(time) {
107
- if (window.isNaN(time)) {
108
- return ''
109
- }
110
- let hour = padStart(Math.floor(time / 3600), 2, 0)
111
- let minute = padStart(Math.floor((time - hour * 3600) / 60), 2, 0)
112
- let second = padStart(Math.floor((time - hour * 3600 - minute * 60)), 2, 0)
113
- return (hour === '00' ? [minute, second] : [hour, minute, second]).join(':')
114
- }
115
-
116
- export function event(e) {
117
- if (e.touches) {
118
- let touch = e.touches[0] || e.changedTouches[0]
119
- e.clientX = touch.clientX || 0
120
- e.clientY = touch.clientY || 0
121
- e.offsetX = touch.pageX - touch.target.offsetLeft
122
- e.offsetY = touch.pageY - touch.target.offsetTop
123
- }
124
- e._target = e.target || e.srcElement
125
- }
126
-
127
- export function typeOf(obj) {
128
- return Object.prototype.toString.call(obj).match(/([^\s.*]+)(?=]$)/g)[0]
129
- }
130
-
131
- export function deepCopy(dst, src) {
132
- if (typeOf(src) === 'Object' && typeOf(dst) === 'Object') {
133
- Object.keys(src).forEach(key => {
134
- if (typeOf(src[key]) === 'Object' && !(src[key] instanceof Node)) {
135
- if (!dst[key]) {
136
- dst[key] = src[key]
137
- } else {
138
- deepCopy(dst[key], src[key])
139
- }
140
- } else if (typeOf(src[key]) === 'Array') {
141
- dst[key] = typeOf(dst[key]) === 'Array' ? dst[key].concat(src[key]) : src[key]
142
- } else {
143
- dst[key] = src[key]
144
- }
145
- })
146
- return dst
147
- }
148
- }
149
- export function getBgImage(el) {
150
- // fix: return current page url when url is none
151
- let url = (el.currentStyle || window.getComputedStyle(el, null)).backgroundImage
152
- if (!url || url === 'none') {
153
- return ''
154
- }
155
- let a = document.createElement('a')
156
- a.href = url.replace(/url\("|"\)/g, '')
157
- return a.href
158
- }
159
-
160
- export function copyDom(dom) {
161
- if (dom && dom.nodeType === 1) {
162
- let back = document.createElement(dom.tagName)
163
- Array.prototype.forEach.call(dom.attributes, (node) => {
164
- back.setAttribute(node.name, node.value)
165
- })
166
- if (dom.innerHTML) {
167
- back.innerHTML = dom.innerHTML
168
- }
169
- return back
170
- } else {
171
- return ''
172
- }
173
- }
174
-
175
- export function _setInterval(context, eventName, intervalFunc, frequency) {
176
- if (!context._interval[eventName]) {
177
- context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency)
178
- }
179
- }
180
-
181
- export function _clearInterval(context, eventName) {
182
- clearInterval(context._interval[eventName])
183
- context._interval[eventName] = null
184
- }
185
-
186
- export function createImgBtn(name, imgUrl, width, height) {
187
- let btn = createDom(`xg-${name}`, '', {}, `xgplayer-${name}-img`)
188
- btn.style.backgroundImage = `url("${imgUrl}")`
189
- if (width && height) {
190
- let w, h, unit
191
- ['px', 'rem', 'em', 'pt', 'dp', 'vw', 'vh', 'vm', '%'].every((item) => {
192
- if (width.indexOf(item) > -1 && height.indexOf(item) > -1) {
193
- w = Number(width.slice(0, width.indexOf(item)).trim())
194
- h = Number(height.slice(0, height.indexOf(item)).trim())
195
- unit = item
196
- return false
197
- } else {
198
- return true
199
- }
200
- })
201
- btn.style.width = `${w}${unit}`
202
- btn.style.height = `${h}${unit}`
203
- btn.style.backgroundSize = `${w}${unit} ${h}${unit}`
204
- if (name === 'start') {
205
- btn.style.margin = `-${h / 2}${unit} auto auto -${w / 2}${unit}`
206
- } else {
207
- btn.style.margin = 'auto 5px auto 5px'
208
- }
209
- }
210
- return btn
211
- }
212
-
213
- export function isWeiXin() {
214
- let ua = window.navigator.userAgent.toLowerCase()
215
- return ua.indexOf('micromessenger') > -1
216
- }
217
-
218
- export function isUc() {
219
- let ua = window.navigator.userAgent.toLowerCase()
220
- return ua.indexOf('ucbrowser') > -1
221
- }
222
-
223
- export function computeWatchDur(played = []) {
224
- let arr = []
225
- for (let i = 0; i < played.length; i++) {
226
- if(!played[i].end || played[i].begin < 0 || played[i].end < 0 || played[i].end < played[i].begin) {
227
- continue
228
- }
229
- if(arr.length < 1) {
230
- arr.push({begin: played[i].begin, end: played[i].end})
231
- } else {
232
- for (let j = 0; j < arr.length; j++) {
233
- let begin = played[i].begin
234
- let end = played[i].end
235
- if(end < arr[j].begin) {
236
- arr.splice(j, 0, {begin, end})
237
- break
238
- } else if(begin > arr[j].end) {
239
- if(j > arr.length - 2) {
240
- arr.push({begin, end})
241
- break
242
- }
243
- } else {
244
- let b = arr[j].begin
245
- let e = arr[j].end
246
- arr[j].begin = Math.min(begin, b)
247
- arr[j].end = Math.max(end, e)
248
- break
249
- }
250
- }
251
- }
252
- }
253
- let watch_dur = 0
254
- for (let i = 0; i < arr.length; i++) {
255
- watch_dur += arr[i].end - arr[i].begin
256
- }
257
- return watch_dur
258
- }
259
-
260
- export function offInDestroy(object, event, fn, offEvent) {
261
- function onDestroy () {
262
- object.off(event, fn)
263
- object.off(offEvent, onDestroy)
264
- }
265
- object.once(offEvent, onDestroy)
266
- }
267
-
268
- export function on(object, event, fn, offEvent) {
269
- if (offEvent) {
270
- object.on(event, fn)
271
- offInDestroy(object, event, fn, offEvent)
272
- } else {
273
- let _fn = data => {
274
- fn(data)
275
- object.off(event, _fn)
276
- }
277
- object.on(event, _fn)
278
- }
279
- }
280
-
281
- export function once(object, event, fn, offEvent) {
282
- if (offEvent) {
283
- object.once(event, fn)
284
- offInDestroy(object, event, fn, offEvent)
285
- } else {
286
- let _fn = data => {
287
- fn(data)
288
- object.off(event, _fn)
289
- }
290
- object.once(event, _fn)
291
- }
292
- }
293
-
294
- export function getBuffered2(vbuffered, maxHoleDuration = 0.5) { //ref: hls.js
295
- let buffered = []
296
- for (let i = 0; i < vbuffered.length; i++) {
297
- buffered.push({ start: vbuffered.start(i) < 0.5 ? 0 : vbuffered.start(i), end: vbuffered.end(i) });
298
- }
299
- buffered.sort(function (a, b) {
300
- let diff = a.start - b.start;
301
- if (diff) {
302
- return diff;
303
- } else {
304
- return b.end - a.end;
305
- }
306
- });
307
- let buffered_2 = []
308
- if (maxHoleDuration) {
309
- for (let i = 0; i < buffered.length; i++) {
310
- let buf2len = buffered_2.length
311
- if (buf2len) {
312
- let buf2end = buffered_2[buf2len - 1].end
313
- if ((buffered[i].start - buf2end) < maxHoleDuration) {
314
- if (buffered[i].end > buf2end) {
315
- buffered_2[buf2len - 1].end = buffered[i].end
316
- }
317
- } else {
318
- buffered_2.push(buffered[i])
319
- }
320
- } else {
321
- buffered_2.push(buffered[i])
322
- }
323
- }
324
- } else {
325
- buffered_2 = buffered
326
- }
327
- return new XgplayerTimeRange(buffered_2)
328
- }
329
-
330
- export function checkIsBrowser() {
331
- return !(typeof(window) === 'undefined' || typeof(window.document) === 'undefined' || typeof(window.document.createElement) === 'undefined')
332
- }
333
-
334
- export function setStyle(elem, name, value) {
335
- let style = elem.style;
336
- try {
337
- style[name] = value;
338
- } catch (error) {
339
- style.setProperty( name, value );
340
- }
341
- }
342
-
343
- export const PresentationMode = {
344
- PIP: 'picture-in-picture',
345
- INLINE: 'inline',
346
- FULLSCREEN: 'fullscreen'
347
- }
348
-
349
- export function checkWebkitSetPresentationMode (video) {
350
- return typeof video.webkitSetPresentationMode === 'function'
351
- }
352
-
353
- export const util = {
354
- createDom, hasClass, addClass, removeClass, toggleClass, findDom, padStart, format, event, typeOf,
355
- deepCopy, getBgImage, copyDom, setInterval: _setInterval, clearInterval: _clearInterval, createImgBtn, isWeiXin, isUc, computeWatchDur,
356
- offInDestroy, on, once, getBuffered2, checkIsBrowser, setStyle
357
- }
358
-
@@ -1,17 +0,0 @@
1
- export default class XgplayerTimeRange {
2
- constructor(bufferedList) {
3
- this.bufferedList = bufferedList
4
- }
5
-
6
- start (index) {
7
- return this.bufferedList[index].start
8
- }
9
-
10
- end (index) {
11
- return this.bufferedList[index].end
12
- }
13
-
14
- get length () {
15
- return this.bufferedList.length
16
- }
17
- }
package/src/version.js DELETED
@@ -1,7 +0,0 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
- const {version} = require('../package.json')
4
- const versionConfig = {
5
- version: version
6
- }
7
- fs.writeFileSync(path.join(__dirname, '../version.json'), JSON.stringify(versionConfig, null, 2))
package/version.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "version": "2.32.2"
3
- }
package/webpack.config.js DELETED
@@ -1,168 +0,0 @@
1
- const path = require('path')
2
- const polyfill = []
3
-
4
- const rules = [{
5
- test: /\.js$/,
6
- loader: 'babel-loader'
7
- }, {
8
- test: /\.scss$/,
9
- use: [
10
- 'style-loader',
11
- {
12
- loader: 'css-loader',
13
- options: {
14
- importLoaders: 1,
15
- minimize: true
16
- }
17
- },
18
- 'postcss-loader',
19
- {
20
- loader: 'sass-loader',
21
- options: {
22
- implementation: require('sass')
23
- }
24
- }
25
- ]
26
- }, {
27
- test: /\.svg/,
28
- loader: 'raw-loader'
29
- }]
30
-
31
- const umdModuleConfig = {
32
- rules
33
- }
34
-
35
- const babelModuleConfig = {
36
- rules: rules.concat({
37
- test: /\.(js|jsx)$/,
38
- use: {
39
- loader: 'babel-loader',
40
- options: {
41
- presets: [
42
- 'es2015'
43
- ],
44
- plugins: [
45
- 'add-module-exports',
46
- 'babel-plugin-bulk-import'
47
- ]
48
- }
49
- },
50
- exclude: /node_modules/
51
- })
52
- }
53
-
54
- const umd = {
55
- entry: {
56
- index: polyfill.concat(['./src/index.js']),
57
- 'simple_player': polyfill.concat(['./src/simple_player.js']),
58
- 'core_player': polyfill.concat(['./src/core_player.js'])
59
- },
60
- devtool: 'source-map',
61
- output: {
62
- path: `${__dirname}/dist`,
63
- filename: '[name].js',
64
- library: 'xgplayer',
65
- globalObject: 'this',
66
- libraryTarget: 'umd'
67
- },
68
- mode: 'production',
69
- module: babelModuleConfig,
70
- optimization: {
71
- minimize: false
72
- }
73
- }
74
-
75
- const umd_es6 = {
76
- entry: {
77
- index: polyfill.concat(['./src/index.js']),
78
- 'simple_player': polyfill.concat(['./src/simple_player.js']),
79
- 'core_player': polyfill.concat(['./src/core_player.js'])
80
- },
81
- devtool: 'source-map',
82
- output: {
83
- path: `${__dirname}/es`,
84
- filename: '[name].js',
85
- library: 'xgplayer',
86
- libraryTarget: 'umd'
87
- },
88
- mode: 'production',
89
- module: umdModuleConfig,
90
- optimization: {
91
- minimize: true
92
- }
93
- }
94
-
95
- const client = {
96
- entry: {
97
- index: polyfill.concat(['./src/index.js']),
98
- 'simple_player': polyfill.concat(['./src/simple_player.js']),
99
- 'core_player': polyfill.concat(['./src/core_player.js'])
100
- },
101
- devtool: 'source-map',
102
- output: {
103
- path: `${__dirname}/browser`,
104
- filename: '[name].js',
105
- library: 'Player',
106
- libraryTarget: 'window'
107
- },
108
- module: babelModuleConfig,
109
- mode: 'production',
110
- optimization: {
111
- minimize: true
112
- }
113
- }
114
-
115
- const controls = ['airplay', 'cssFullscreen', 'danmu', 'definition', 'download', 'enter', 'error', 'errorRetry',
116
- 'flex', 'fullscreen', 'i18n', 'keyboard', 'loading', 'localPreview', 'memoryPlay', 'miniplayer', 'mobile', 'pc',
117
- 'pip', 'play', 'playbackRate', 'playNext', 'poster', 'progress', 'reload', 'replay', 'rotate', 'screenShot',
118
- 'start', 'textTrack', 'nativeTextTrack', 'time', 'volume']
119
-
120
- const umd_es6_controls = controls.map(key => {
121
- return {
122
- entry: `./src/bind/${key}.js`,
123
- output: {
124
- filename: `${key}.js`,
125
- path: path.resolve(__dirname, 'es/controls'),
126
- library: ['xgplayer', 'PlayerControls', key],
127
- libraryTarget: 'umd'
128
- },
129
- mode: 'production',
130
- optimization: {},
131
- module: umdModuleConfig,
132
- devtool: false
133
- }
134
- })
135
-
136
- const umd_controls = controls.map(key => {
137
- return {
138
- entry: `./src/bind/${key}.js`,
139
- output: {
140
- filename: `${key}.js`,
141
- path: path.resolve(__dirname, 'dist/controls'),
142
- library: ['xgplayer', 'PlayerControls', key],
143
- libraryTarget: 'umd'
144
- },
145
- mode: 'production',
146
- optimization: {},
147
- module: babelModuleConfig,
148
- devtool: false
149
- }
150
- })
151
-
152
- const client_controls = controls.map(key => {
153
- return {
154
- entry: `./src/bind/${key}.js`,
155
- output: {
156
- filename: `${key}.js`,
157
- path: path.resolve(__dirname, 'browser/controls'),
158
- library: ['PlayerControls', key],
159
- libraryTarget: 'window'
160
- },
161
- mode: 'production',
162
- optimization: {},
163
- module: babelModuleConfig,
164
- devtool: false
165
- }
166
- })
167
-
168
- module.exports = [umd, umd_es6, client].concat(umd_es6_controls, umd_controls, client_controls)