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.
- package/browser/controls/danmu.js +3 -1
- package/browser/controls/errorRetry.js +1 -1
- package/browser/controls/nativeTextTrack.js +1 -1
- package/browser/core_player.js +1 -1
- package/browser/core_player.js.map +1 -1
- package/browser/index.js +7 -5
- package/browser/index.js.map +1 -1
- package/browser/simple_player.js +1 -1
- package/browser/simple_player.js.map +1 -1
- package/dist/controls/danmu.js +3 -1
- package/dist/controls/errorRetry.js +1 -1
- package/dist/controls/nativeTextTrack.js +1 -1
- package/dist/core_player.js +6 -7
- package/dist/core_player.js.map +1 -1
- package/dist/index.js +2881 -1887
- package/dist/index.js.map +1 -1
- package/dist/index.min.css +1 -0
- package/dist/index.min.js +2 -0
- package/dist/index.min.js.map +1 -0
- package/dist/simple_player.js +6 -7
- package/dist/simple_player.js.map +1 -1
- package/es/controls/danmu.js +3 -1
- package/es/controls/errorRetry.js +1 -1
- package/es/controls/nativeTextTrack.js +1 -1
- package/es/core_player.js +1 -1
- package/es/core_player.js.map +1 -1
- package/es/index.js +7 -5
- package/es/index.js.map +1 -1
- package/es/simple_player.js +1 -1
- package/es/simple_player.js.map +1 -1
- package/package.json +11 -2
- package/types/index.d.ts +0 -11
- package/postcss.config.js +0 -7
- package/src/bind/airplay.js +0 -10
- package/src/bind/cssFullscreen.js +0 -10
- package/src/bind/danmu.js +0 -10
- package/src/bind/definition.js +0 -10
- package/src/bind/download.js +0 -10
- package/src/bind/enter.js +0 -8
- package/src/bind/error.js +0 -8
- package/src/bind/errorRetry.js +0 -8
- package/src/bind/flex.js +0 -8
- package/src/bind/fullscreen.js +0 -10
- package/src/bind/i18n.js +0 -8
- package/src/bind/keyboard.js +0 -8
- package/src/bind/loading.js +0 -8
- package/src/bind/localPreview.js +0 -10
- package/src/bind/memoryPlay.js +0 -10
- package/src/bind/miniplayer.js +0 -10
- package/src/bind/mobile.js +0 -8
- package/src/bind/nativeTextTrack.js +0 -8
- package/src/bind/pc.js +0 -8
- package/src/bind/pip.js +0 -10
- package/src/bind/play.js +0 -10
- package/src/bind/playNext.js +0 -10
- package/src/bind/playbackRate.js +0 -8
- package/src/bind/poster.js +0 -8
- package/src/bind/progress.js +0 -8
- package/src/bind/reload.js +0 -10
- package/src/bind/replay.js +0 -10
- package/src/bind/rotate.js +0 -10
- package/src/bind/screenShot.js +0 -10
- package/src/bind/stallCheck.js +0 -8
- package/src/bind/start.js +0 -10
- package/src/bind/textTrack.js +0 -8
- package/src/bind/time.js +0 -8
- package/src/bind/volume.js +0 -10
- package/src/controls/airplay.js +0 -20
- package/src/controls/cssFullscreen.js +0 -49
- package/src/controls/danmu.js +0 -75
- package/src/controls/definition.js +0 -13
- package/src/controls/download.js +0 -28
- package/src/controls/errorRetry.js +0 -132
- package/src/controls/fullscreen.js +0 -145
- package/src/controls/keyboard.js +0 -214
- package/src/controls/localPreview.js +0 -32
- package/src/controls/memoryPlay.js +0 -14
- package/src/controls/miniplayer.js +0 -128
- package/src/controls/mobile.js +0 -100
- package/src/controls/pc.js +0 -123
- package/src/controls/pip.js +0 -52
- package/src/controls/play.js +0 -34
- package/src/controls/playNext.js +0 -29
- package/src/controls/reload.js +0 -24
- package/src/controls/replay.js +0 -30
- package/src/controls/rotate.js +0 -99
- package/src/controls/screenShot.js +0 -65
- package/src/controls/stallCheck.js +0 -38
- package/src/controls/start.js +0 -60
- package/src/controls/textTrack.js +0 -182
- package/src/controls/volume.js +0 -178
- package/src/controls.js +0 -36
- package/src/core_player.js +0 -13
- package/src/error.js +0 -74
- package/src/index.js +0 -57
- package/src/player.js +0 -553
- package/src/proxy.js +0 -495
- package/src/simple_player.js +0 -42
- package/src/skin/assets/airplay.svg +0 -1
- package/src/skin/assets/download.svg +0 -14
- package/src/skin/assets/exitCssFull.svg +0 -3
- package/src/skin/assets/exitFull.svg +0 -3
- package/src/skin/assets/loading.svg +0 -3
- package/src/skin/assets/panel.svg +0 -4
- package/src/skin/assets/pause.svg +0 -3
- package/src/skin/assets/play.svg +0 -3
- package/src/skin/assets/playNext.svg +0 -3
- package/src/skin/assets/reload.svg +0 -3
- package/src/skin/assets/replay.svg +0 -3
- package/src/skin/assets/requestCssFull.svg +0 -3
- package/src/skin/assets/requestFull.svg +0 -3
- package/src/skin/assets/rotate.svg +0 -11
- package/src/skin/assets/startPause.svg +0 -3
- package/src/skin/assets/startPlay.svg +0 -3
- package/src/skin/assets/volumeLarge.svg +0 -4
- package/src/skin/assets/volumeMuted.svg +0 -4
- package/src/skin/assets/volumeSmall.svg +0 -4
- package/src/skin/controls/airplay.js +0 -44
- package/src/skin/controls/cssFullscreen.js +0 -36
- package/src/skin/controls/danmu.js +0 -214
- package/src/skin/controls/definition.js +0 -251
- package/src/skin/controls/download.js +0 -29
- package/src/skin/controls/enter.js +0 -21
- package/src/skin/controls/error.js +0 -57
- package/src/skin/controls/flex.js +0 -13
- package/src/skin/controls/fullscreen.js +0 -43
- package/src/skin/controls/i18n.js +0 -168
- package/src/skin/controls/loading.js +0 -17
- package/src/skin/controls/localPreview.js +0 -18
- package/src/skin/controls/memoryPlay.js +0 -39
- package/src/skin/controls/miniplayer.js +0 -26
- package/src/skin/controls/nativeTextTrack.js +0 -153
- package/src/skin/controls/pip.js +0 -26
- package/src/skin/controls/play.js +0 -43
- package/src/skin/controls/playNext.js +0 -41
- package/src/skin/controls/playbackRate.js +0 -141
- package/src/skin/controls/poster.js +0 -18
- package/src/skin/controls/progress.js +0 -407
- package/src/skin/controls/reload.js +0 -29
- package/src/skin/controls/replay.js +0 -56
- package/src/skin/controls/rotate.js +0 -29
- package/src/skin/controls/screenShot.js +0 -27
- package/src/skin/controls/start.js +0 -62
- package/src/skin/controls/textTrack.js +0 -113
- package/src/skin/controls/time.js +0 -40
- package/src/skin/controls/volume.js +0 -63
- package/src/skin/index.js +0 -63
- package/src/skin/style/common/animation.scss +0 -16
- package/src/skin/style/common/svg-url.scss +0 -70
- package/src/skin/style/controls/airplay.scss +0 -35
- package/src/skin/style/controls/controls.scss +0 -40
- package/src/skin/style/controls/cssfullscreen.scss +0 -103
- package/src/skin/style/controls/danmu.scss +0 -333
- package/src/skin/style/controls/definition.scss +0 -76
- package/src/skin/style/controls/download.scss +0 -45
- package/src/skin/style/controls/enter.scss +0 -55
- package/src/skin/style/controls/error.scss +0 -34
- package/src/skin/style/controls/fullscreen.scss +0 -60
- package/src/skin/style/controls/icon.scss +0 -12
- package/src/skin/style/controls/live.scss +0 -9
- package/src/skin/style/controls/loading.scss +0 -44
- package/src/skin/style/controls/memoryPlay.scss +0 -28
- package/src/skin/style/controls/miniplayer.scss +0 -104
- package/src/skin/style/controls/pip.scss +0 -42
- package/src/skin/style/controls/placeholder.scss +0 -7
- package/src/skin/style/controls/play.scss +0 -79
- package/src/skin/style/controls/playNext.scss +0 -44
- package/src/skin/style/controls/playbackRate.scss +0 -82
- package/src/skin/style/controls/poster.scss +0 -19
- package/src/skin/style/controls/progress.scss +0 -182
- package/src/skin/style/controls/reload.scss +0 -43
- package/src/skin/style/controls/replay.scss +0 -46
- package/src/skin/style/controls/rotate.scss +0 -41
- package/src/skin/style/controls/screenShot.scss +0 -42
- package/src/skin/style/controls/start.scss +0 -78
- package/src/skin/style/controls/textTrack.scss +0 -87
- package/src/skin/style/controls/time.scss +0 -24
- package/src/skin/style/controls/tips.scss +0 -24
- package/src/skin/style/controls/videoProxy.scss +0 -6
- package/src/skin/style/controls/volume.scss +0 -143
- package/src/skin/style/index.scss +0 -88
- package/src/utils/sniffer.js +0 -47
- package/src/utils/url.js +0 -10
- package/src/utils/util.js +0 -358
- package/src/utils/xgplayerTimeRange.js +0 -17
- package/src/version.js +0 -7
- package/version.json +0 -3
- package/webpack.config.js +0 -168
package/src/proxy.js
DELETED
|
@@ -1,495 +0,0 @@
|
|
|
1
|
-
import EventEmitter from 'event-emitter'
|
|
2
|
-
import { findDom, createDom, hasClass, removeClass, _clearInterval, _setInterval, on, once, getBuffered2, setStyle } from './utils/util'
|
|
3
|
-
import Errors from './error'
|
|
4
|
-
|
|
5
|
-
class Proxy {
|
|
6
|
-
constructor (options) {
|
|
7
|
-
this._hasStart = false
|
|
8
|
-
this.videoConfig = {
|
|
9
|
-
controls: !!options.isShowControl,
|
|
10
|
-
autoplay: options.autoplay,
|
|
11
|
-
playsinline: options.playsinline,
|
|
12
|
-
'webkit-playsinline': options.playsinline,
|
|
13
|
-
'x5-playsinline': options.playsinline,
|
|
14
|
-
'x5-video-player-type': options['x5-video-player-type'] || options['x5VideoPlayerType'],
|
|
15
|
-
'x5-video-player-fullscreen': options['x5-video-player-fullscreen'] || options['x5VideoPlayerFullscreen'],
|
|
16
|
-
'x5-video-orientation': options['x5-video-orientation'] || options['x5VideoOrientation'],
|
|
17
|
-
airplay: options['airplay'],
|
|
18
|
-
'webkit-airplay': options['airplay'],
|
|
19
|
-
tabindex: 2,
|
|
20
|
-
mediaType: options.mediaType || 'video'
|
|
21
|
-
}
|
|
22
|
-
if (options.muted) {
|
|
23
|
-
this.videoConfig.muted = 'muted'
|
|
24
|
-
}
|
|
25
|
-
if (options.loop) {
|
|
26
|
-
this.videoConfig.loop = 'loop'
|
|
27
|
-
}
|
|
28
|
-
let textTrackDom = ''
|
|
29
|
-
this.textTrackShowDefault = true
|
|
30
|
-
if (options.nativeTextTrack && Array.isArray(options.nativeTextTrack)) {
|
|
31
|
-
if (options.nativeTextTrack.length > 0 && !options.nativeTextTrack.some(track => { return track.default })) {
|
|
32
|
-
options.nativeTextTrack[0].default = true
|
|
33
|
-
this.textTrackShowDefault = false
|
|
34
|
-
}
|
|
35
|
-
options.nativeTextTrack.some(track => {
|
|
36
|
-
if (track.src && track.label && track.default) {
|
|
37
|
-
textTrackDom += `<track src="${track.src}" `
|
|
38
|
-
if (track.kind) {
|
|
39
|
-
textTrackDom += `kind="${track.kind}" `
|
|
40
|
-
}
|
|
41
|
-
textTrackDom += `label="${track.label}" `
|
|
42
|
-
if (track.srclang) {
|
|
43
|
-
textTrackDom += `srclang="${track.srclang}" `
|
|
44
|
-
}
|
|
45
|
-
textTrackDom += `${track.default ? 'default' : ''}>`
|
|
46
|
-
return true
|
|
47
|
-
}
|
|
48
|
-
})
|
|
49
|
-
this.videoConfig.crossorigin = 'anonymous'
|
|
50
|
-
}
|
|
51
|
-
if (options.textTrackStyle) {
|
|
52
|
-
let style = document.createElement('style')
|
|
53
|
-
this.textTrackStyle = style
|
|
54
|
-
document.head.appendChild(style)
|
|
55
|
-
let styleStr = ''
|
|
56
|
-
for (let index in options.textTrackStyle) {
|
|
57
|
-
styleStr += `${index}: ${options.textTrackStyle[index]};`
|
|
58
|
-
}
|
|
59
|
-
let wrap = options.id ? `#${options.id}` : (options.el.id ? `#${options.el.id}` : `.${options.el.className}`)
|
|
60
|
-
if (style.sheet.insertRule) {
|
|
61
|
-
style.sheet.insertRule(`${wrap} video::cue { ${styleStr} }`, 0)
|
|
62
|
-
} else if (style.sheet.addRule) {
|
|
63
|
-
style.sheet.addRule(`${wrap} video::cue`, styleStr)
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
let el = options.el ? options.el : findDom(document, `#${options.id}`)
|
|
67
|
-
const XgVideoProxy = this.constructor.XgVideoProxy
|
|
68
|
-
if(XgVideoProxy && this.videoConfig.mediaType === XgVideoProxy.mediaType) {
|
|
69
|
-
this.video = new XgVideoProxy(el, options)
|
|
70
|
-
} else {
|
|
71
|
-
this.video = createDom(this.videoConfig.mediaType, textTrackDom, this.videoConfig, '')
|
|
72
|
-
}
|
|
73
|
-
if (options.videoStyle) {
|
|
74
|
-
Object.keys(options.videoStyle).forEach(key => {
|
|
75
|
-
setStyle(this.video, key, options.videoStyle[key])
|
|
76
|
-
})
|
|
77
|
-
}
|
|
78
|
-
if (!this.textTrackShowDefault && textTrackDom) {
|
|
79
|
-
let trackDoms = this.video.getElementsByTagName('Track')
|
|
80
|
-
trackDoms[0].track.mode = 'hidden'
|
|
81
|
-
}
|
|
82
|
-
if (options.autoplay) {
|
|
83
|
-
this.video.autoplay = true
|
|
84
|
-
if (options.autoplayMuted) {
|
|
85
|
-
this.video.muted = true
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked', 'progress',
|
|
90
|
-
'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'ratechange', 'loadedmetadata', 'loadeddata', 'loadstart'
|
|
91
|
-
].map((item) => {
|
|
92
|
-
return {
|
|
93
|
-
[item]: `on${item.charAt(0).toUpperCase()}${item.slice(1)}`
|
|
94
|
-
}
|
|
95
|
-
})
|
|
96
|
-
EventEmitter(this)
|
|
97
|
-
|
|
98
|
-
this._interval = {}
|
|
99
|
-
let lastBuffer = '0,0'
|
|
100
|
-
let self = this
|
|
101
|
-
|
|
102
|
-
const defaultVideoEventHandler = name => {
|
|
103
|
-
// fix when video destroy called and video reload
|
|
104
|
-
if (!this) {
|
|
105
|
-
return
|
|
106
|
-
}
|
|
107
|
-
if (name === 'play') {
|
|
108
|
-
this.hasStart = true
|
|
109
|
-
} else if (name === 'canplay') {
|
|
110
|
-
removeClass(this.root, 'xgplayer-is-enter')
|
|
111
|
-
} else if (name === 'waiting') {
|
|
112
|
-
this.inWaitingStart = new Date().getTime()
|
|
113
|
-
} else if (name === 'playing') {
|
|
114
|
-
removeClass(this.root, 'xgplayer-is-enter')
|
|
115
|
-
if (this.inWaitingStart) {
|
|
116
|
-
this.inWaitingStart = undefined
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (name === 'error') {
|
|
120
|
-
// process the error
|
|
121
|
-
this._onError(name)
|
|
122
|
-
} else {
|
|
123
|
-
this.emit(name, this)
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (this.hasOwnProperty('_interval')) {
|
|
127
|
-
if (['ended', 'error', 'timeupdate'].indexOf(name) < 0) {
|
|
128
|
-
_clearInterval(this, 'bufferedChange')
|
|
129
|
-
_setInterval(this, 'bufferedChange', function () {
|
|
130
|
-
if (this.video && this.video.buffered) {
|
|
131
|
-
let curBuffer = []
|
|
132
|
-
for (let i = 0, len = this.video.buffered.length; i < len; i++) {
|
|
133
|
-
curBuffer.push([this.video.buffered.start(i), this.video.buffered.end(i)])
|
|
134
|
-
}
|
|
135
|
-
if (curBuffer.toString() !== lastBuffer) {
|
|
136
|
-
lastBuffer = curBuffer.toString()
|
|
137
|
-
this.emit('bufferedChange', curBuffer)
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}, 200)
|
|
141
|
-
} else {
|
|
142
|
-
if (name !== 'timeupdate') {
|
|
143
|
-
_clearInterval(this, 'bufferedChange')
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
const videoEventHandler = name => {
|
|
150
|
-
if(options.videoEventMiddleware && typeof options.videoEventMiddleware[name] === 'function') {
|
|
151
|
-
options.videoEventMiddleware[name].call(this, this, name, defaultVideoEventHandler)
|
|
152
|
-
} else {
|
|
153
|
-
defaultVideoEventHandler.call(this, name);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
this.ev.forEach(item => {
|
|
158
|
-
self.evItem = Object.keys(item)[0]
|
|
159
|
-
let name = Object.keys(item)[0]
|
|
160
|
-
self.video.addEventListener(Object.keys(item)[0], videoEventHandler.bind(self, name))
|
|
161
|
-
})
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* 错误监听处理逻辑抽离
|
|
165
|
-
*/
|
|
166
|
-
_onError (name) {
|
|
167
|
-
if (this.video && this.video.error) {
|
|
168
|
-
this.emit(name, new Errors('other', this.currentTime, this.duration, this.networkState, this.readyState, this.currentSrc, this.src,
|
|
169
|
-
this.ended, {
|
|
170
|
-
line: 162,
|
|
171
|
-
msg: this.error,
|
|
172
|
-
handle: 'Constructor'
|
|
173
|
-
}, this.video.error.code, this.video.error))
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
get hasStart () {
|
|
178
|
-
return this._hasStart
|
|
179
|
-
}
|
|
180
|
-
set hasStart (bool) {
|
|
181
|
-
if (typeof bool === 'boolean' && bool === true && !this._hasStart) {
|
|
182
|
-
this._hasStart = true
|
|
183
|
-
this.emit('hasstart')
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
destroy () {
|
|
187
|
-
if (this.textTrackStyle) {
|
|
188
|
-
this.textTrackStyle.parentNode.removeChild(this.textTrackStyle)
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
play () {
|
|
192
|
-
return this.video.play()
|
|
193
|
-
}
|
|
194
|
-
pause () {
|
|
195
|
-
this.video.pause()
|
|
196
|
-
}
|
|
197
|
-
canPlayType (type) {
|
|
198
|
-
return this.video.canPlayType(type)
|
|
199
|
-
}
|
|
200
|
-
getBufferedRange (buffered) {
|
|
201
|
-
let range = [0, 0]
|
|
202
|
-
let video = this.video
|
|
203
|
-
if(!buffered) buffered = video.buffered
|
|
204
|
-
let currentTime = video.currentTime
|
|
205
|
-
if (buffered) {
|
|
206
|
-
for (let i = 0, len = buffered.length; i < len; i++) {
|
|
207
|
-
range[0] = buffered.start(i)
|
|
208
|
-
range[1] = buffered.end(i)
|
|
209
|
-
if (range[0] <= currentTime && currentTime <= range[1]) {
|
|
210
|
-
break
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
if (range[0] - currentTime <= 0 && currentTime - range[1] <= 0) {
|
|
215
|
-
return range
|
|
216
|
-
} else {
|
|
217
|
-
return [0, 0]
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
proxyOn (event, fn) {
|
|
221
|
-
on(this, event, fn, 'destroy')
|
|
222
|
-
}
|
|
223
|
-
proxyOnce (event, fn) {
|
|
224
|
-
once(this, event, fn, 'destroy')
|
|
225
|
-
}
|
|
226
|
-
set autoplay (isTrue) {
|
|
227
|
-
if(this.video) {
|
|
228
|
-
this.video.autoplay = isTrue
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
get autoplay () {
|
|
232
|
-
if(this.video) {
|
|
233
|
-
return this.video.autoplay
|
|
234
|
-
} else {
|
|
235
|
-
return false
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
get buffered () {
|
|
239
|
-
if(this.video) {
|
|
240
|
-
return this.video.buffered
|
|
241
|
-
} else {
|
|
242
|
-
return undefined
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
get buffered2 () {
|
|
246
|
-
return getBuffered2(this.video.buffered)
|
|
247
|
-
}
|
|
248
|
-
get crossOrigin () {
|
|
249
|
-
if(this.video) {
|
|
250
|
-
return this.video.crossOrigin
|
|
251
|
-
} else {
|
|
252
|
-
return false
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
set crossOrigin (isTrue) {
|
|
256
|
-
if(this.video) {
|
|
257
|
-
this.video.crossOrigin = isTrue
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
get currentSrc () {
|
|
261
|
-
if(this.video) {
|
|
262
|
-
return this.video.currentSrc
|
|
263
|
-
} else {
|
|
264
|
-
return undefined
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
get currentTime () {
|
|
268
|
-
if(this.video) {
|
|
269
|
-
return this.video.currentTime || 0
|
|
270
|
-
} else {
|
|
271
|
-
return 0
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
set currentTime (time) {
|
|
275
|
-
if (typeof isFinite === 'function' && !isFinite(time)) return
|
|
276
|
-
if (hasClass(this.root, 'xgplayer-ended')) {
|
|
277
|
-
this.once('playing', () => { this.video.currentTime = time })
|
|
278
|
-
this.replay()
|
|
279
|
-
} else {
|
|
280
|
-
this.video.currentTime = time
|
|
281
|
-
}
|
|
282
|
-
this.emit('currentTimeChange', time)
|
|
283
|
-
}
|
|
284
|
-
get defaultMuted () {
|
|
285
|
-
if(this.video) {
|
|
286
|
-
return this.video.defaultMuted
|
|
287
|
-
} else {
|
|
288
|
-
return false
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
set defaultMuted (isTrue) {
|
|
292
|
-
if(this.video) {
|
|
293
|
-
this.video.defaultMuted = isTrue
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
get duration () {
|
|
297
|
-
if(this.config.duration) {
|
|
298
|
-
if(this.video) return Math.min(this.config.duration, this.video.duration)
|
|
299
|
-
else return this.config.duration
|
|
300
|
-
}
|
|
301
|
-
if (!this.video) return null
|
|
302
|
-
return this.video.duration
|
|
303
|
-
}
|
|
304
|
-
get ended () {
|
|
305
|
-
if(this.video) {
|
|
306
|
-
return this.video.ended || false
|
|
307
|
-
} else {
|
|
308
|
-
return true
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
get error () {
|
|
312
|
-
let err = this.video.error
|
|
313
|
-
if (!err) {
|
|
314
|
-
return null
|
|
315
|
-
}
|
|
316
|
-
let status = [{
|
|
317
|
-
en: 'MEDIA_ERR_ABORTED',
|
|
318
|
-
cn: '取回过程被用户中止'
|
|
319
|
-
}, {
|
|
320
|
-
en: 'MEDIA_ERR_NETWORK',
|
|
321
|
-
cn: '当下载时发生错误'
|
|
322
|
-
}, {
|
|
323
|
-
en: 'MEDIA_ERR_DECODE',
|
|
324
|
-
cn: '当解码时发生错误'
|
|
325
|
-
}, {
|
|
326
|
-
en: 'MEDIA_ERR_SRC_NOT_SUPPORTED',
|
|
327
|
-
cn: '不支持音频/视频'
|
|
328
|
-
}]
|
|
329
|
-
return this.lang ? this.lang[status[err.code - 1].en] : status[err.code - 1].en
|
|
330
|
-
}
|
|
331
|
-
get loop () {
|
|
332
|
-
if(this.video) {
|
|
333
|
-
return this.video.loop
|
|
334
|
-
} else {
|
|
335
|
-
return false
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
set loop (isTrue) {
|
|
339
|
-
if(this.video) {
|
|
340
|
-
this.video.loop = isTrue
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
get muted () {
|
|
344
|
-
if(this.video) {
|
|
345
|
-
return this.video.muted
|
|
346
|
-
} else {
|
|
347
|
-
return false
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
set muted (isTrue) {
|
|
351
|
-
if(this.video) {
|
|
352
|
-
this.video.muted = isTrue
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
get networkState () {
|
|
356
|
-
let status = [{
|
|
357
|
-
en: 'NETWORK_EMPTY',
|
|
358
|
-
cn: '音频/视频尚未初始化'
|
|
359
|
-
}, {
|
|
360
|
-
en: 'NETWORK_IDLE',
|
|
361
|
-
cn: '音频/视频是活动的且已选取资源,但并未使用网络'
|
|
362
|
-
}, {
|
|
363
|
-
en: 'NETWORK_LOADING',
|
|
364
|
-
cn: '浏览器正在下载数据'
|
|
365
|
-
}, {
|
|
366
|
-
en: 'NETWORK_NO_SOURCE',
|
|
367
|
-
cn: '未找到音频/视频来源'
|
|
368
|
-
}]
|
|
369
|
-
return this.lang ? this.lang[status[this.video.networkState].en] : status[this.video.networkState].en
|
|
370
|
-
}
|
|
371
|
-
get paused () {
|
|
372
|
-
// if(this.video) {
|
|
373
|
-
// return this.video.paused
|
|
374
|
-
// } else {
|
|
375
|
-
// return false
|
|
376
|
-
// }
|
|
377
|
-
return hasClass(this.root, 'xgplayer-pause')
|
|
378
|
-
}
|
|
379
|
-
get playbackRate () {
|
|
380
|
-
if(this.video) {
|
|
381
|
-
return this.video.playbackRate
|
|
382
|
-
} else {
|
|
383
|
-
return 1
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
set playbackRate (rate) {
|
|
387
|
-
if(this.video) {
|
|
388
|
-
this.video.playbackRate = rate
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
get played () {
|
|
392
|
-
if(this.video) {
|
|
393
|
-
return this.video.played
|
|
394
|
-
} else {
|
|
395
|
-
return undefined
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
get preload () {
|
|
399
|
-
if(this.video) {
|
|
400
|
-
return this.video.preload
|
|
401
|
-
} else {
|
|
402
|
-
return false
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
set preload (isTrue) {
|
|
406
|
-
if(this.video) {
|
|
407
|
-
this.video.preload = isTrue
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
get readyState () {
|
|
411
|
-
let status = [{
|
|
412
|
-
en: 'HAVE_NOTHING',
|
|
413
|
-
cn: '没有关于音频/视频是否就绪的信息'
|
|
414
|
-
}, {
|
|
415
|
-
en: 'HAVE_METADATA',
|
|
416
|
-
cn: '关于音频/视频就绪的元数据'
|
|
417
|
-
}, {
|
|
418
|
-
en: 'HAVE_CURRENT_DATA',
|
|
419
|
-
cn: '关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒'
|
|
420
|
-
}, {
|
|
421
|
-
en: 'HAVE_FUTURE_DATA',
|
|
422
|
-
cn: '当前及至少下一帧的数据是可用的'
|
|
423
|
-
}, {
|
|
424
|
-
en: 'HAVE_ENOUGH_DATA',
|
|
425
|
-
cn: '可用数据足以开始播放'
|
|
426
|
-
}]
|
|
427
|
-
return this.lang ? this.lang[status[this.video.readyState].en] : status[this.video.readyState]
|
|
428
|
-
}
|
|
429
|
-
get seekable () {
|
|
430
|
-
if(this.video) {
|
|
431
|
-
return this.video.seekable
|
|
432
|
-
} else {
|
|
433
|
-
return false
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
get seeking () {
|
|
437
|
-
if(this.video) {
|
|
438
|
-
return this.video.seeking
|
|
439
|
-
} else {
|
|
440
|
-
return false
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
get src () {
|
|
444
|
-
if(this.video) {
|
|
445
|
-
return this.video.src
|
|
446
|
-
} else {
|
|
447
|
-
return undefined
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
set src (url) {
|
|
451
|
-
if (!hasClass(this.root, 'xgplayer-ended')) {
|
|
452
|
-
this.emit('urlchange', this.video.src)
|
|
453
|
-
}
|
|
454
|
-
removeClass(this.root, 'xgplayer-ended xgplayer-is-replay xgplayer-is-error')
|
|
455
|
-
this.video.pause()
|
|
456
|
-
this.emit('pause')
|
|
457
|
-
this.video.src = url
|
|
458
|
-
this.emit('srcChange')
|
|
459
|
-
}
|
|
460
|
-
set poster (posterUrl) {
|
|
461
|
-
let poster = findDom(this.root, '.xgplayer-poster')
|
|
462
|
-
if (poster) {
|
|
463
|
-
poster.style.backgroundImage = `url(${posterUrl})`
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
get volume () {
|
|
467
|
-
if(this.video) {
|
|
468
|
-
return this.video.volume
|
|
469
|
-
} else {
|
|
470
|
-
return 1
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
set volume (vol) {
|
|
474
|
-
if(this.video) {
|
|
475
|
-
this.video.volume = vol
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
get fullscreen () {
|
|
479
|
-
return hasClass(this.root, 'xgplayer-is-fullscreen') || hasClass(this.root, 'xgplayer-fullscreen-active')
|
|
480
|
-
}
|
|
481
|
-
get bullet () {
|
|
482
|
-
return findDom(this.root, 'xg-danmu') ? hasClass(findDom(this.root, 'xg-danmu'), 'xgplayer-has-danmu') : false
|
|
483
|
-
}
|
|
484
|
-
get textTrack () {
|
|
485
|
-
return hasClass(this.root, 'xgplayer-is-textTrack')
|
|
486
|
-
}
|
|
487
|
-
get pip () {
|
|
488
|
-
return hasClass(this.root, 'xgplayer-pip-active')
|
|
489
|
-
}
|
|
490
|
-
get isMiniPlayer () {
|
|
491
|
-
return hasClass(this.root, 'xgplayer-miniplayer-active')
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
export default Proxy
|
package/src/simple_player.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import Player from './player'
|
|
2
|
-
|
|
3
|
-
import Flex from './skin/controls/flex'
|
|
4
|
-
import Fullscreen from './controls/fullscreen'
|
|
5
|
-
import S_fullscreen from './skin/controls/fullscreen'
|
|
6
|
-
import S_loading from './skin/controls/loading'
|
|
7
|
-
import Mobile from './controls/mobile'
|
|
8
|
-
import Pc from './controls/pc'
|
|
9
|
-
import Play from './controls/play'
|
|
10
|
-
import S_play from './skin/controls/play'
|
|
11
|
-
import S_progress from './skin/controls/progress'
|
|
12
|
-
import S_poster from './skin/controls/poster'
|
|
13
|
-
import S_time from './skin/controls/time'
|
|
14
|
-
import Start from './controls/start'
|
|
15
|
-
import S_start from './skin/controls/start'
|
|
16
|
-
import Replay from './controls/replay'
|
|
17
|
-
import S_replay from './skin/controls/replay'
|
|
18
|
-
// import Volume from './controls/volume'
|
|
19
|
-
// import S_volume from './skin/controls/volume'
|
|
20
|
-
|
|
21
|
-
let controlLst = [
|
|
22
|
-
Flex,
|
|
23
|
-
Fullscreen,
|
|
24
|
-
S_fullscreen,
|
|
25
|
-
S_loading,
|
|
26
|
-
Mobile,
|
|
27
|
-
Pc,
|
|
28
|
-
Play,
|
|
29
|
-
S_play,
|
|
30
|
-
S_progress,
|
|
31
|
-
S_poster,
|
|
32
|
-
S_time,
|
|
33
|
-
Start,
|
|
34
|
-
S_start,
|
|
35
|
-
Replay,
|
|
36
|
-
S_replay
|
|
37
|
-
]
|
|
38
|
-
controlLst.forEach(function(control) {
|
|
39
|
-
Player.install(control.name, control.method)
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
export default Player
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<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>
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24">
|
|
2
|
-
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
3
|
-
<g transform="translate(-488.000000, -340.000000)" fill="#FFFFFF">
|
|
4
|
-
<g id="Group-2">
|
|
5
|
-
<g id="volme_big-copy" transform="translate(488.000000, 340.000000)">
|
|
6
|
-
<rect id="Rectangle-18" x="11" y="4" width="2" height="12" rx="1"></rect>
|
|
7
|
-
<rect id="Rectangle-2" x="3" y="18" width="18" height="2" rx="1"></rect>
|
|
8
|
-
<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>
|
|
9
|
-
<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>
|
|
10
|
-
</g>
|
|
11
|
-
</g>
|
|
12
|
-
</g>
|
|
13
|
-
</g>
|
|
14
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">
|
|
2
|
-
<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>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">
|
|
2
|
-
<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>
|
|
3
|
-
</svg>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40">
|
|
2
|
-
<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"/>
|
|
3
|
-
<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"/>
|
|
4
|
-
</svg>
|
package/src/skin/assets/play.svg
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
|
2
|
-
<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"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg class="xgplayer-replay-svg" xmlns="http://www.w3.org/2000/svg" width="78" height="78" viewbox="0 0 78 78">
|
|
2
|
-
<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>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">
|
|
2
|
-
<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>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">
|
|
2
|
-
<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>
|
|
3
|
-
</svg>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 40 40" fill="none">
|
|
2
|
-
<g clip-path="url(#clip0)">
|
|
3
|
-
<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"/>
|
|
4
|
-
<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"/>
|
|
5
|
-
</g>
|
|
6
|
-
<defs>
|
|
7
|
-
<clipPath id="clip0">
|
|
8
|
-
<rect width="40" height="40" fill="white"/>
|
|
9
|
-
</clipPath>
|
|
10
|
-
</defs>
|
|
11
|
-
</svg>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
|
2
|
-
<path transform="scale(0.0220625 0.0220625)" d="M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z"></path>
|
|
3
|
-
<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>
|
|
4
|
-
</svg>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
|
2
|
-
<path transform="scale(0.0220625 0.0220625)" d="M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z"></path>
|
|
3
|
-
<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>
|
|
4
|
-
</svg>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
|
|
2
|
-
<path transform="scale(0.0220625 0.0220625)" d="M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z"></path>
|
|
3
|
-
<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>
|
|
4
|
-
</svg>
|