diff --git a/CHANGELOG_CN.md b/CHANGELOG_CN.md index 6152749c6..a93399149 100644 --- a/CHANGELOG_CN.md +++ b/CHANGELOG_CN.md @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Added +- 优化自动回放功能,让用户自行选择 + ## [4.5.0] - 2022-6-21 ### Added diff --git a/docs/uncompiled/artplayer/index.js b/docs/uncompiled/artplayer/index.js index 5997a4693..d29f26c3d 100644 --- a/docs/uncompiled/artplayer/index.js +++ b/docs/uncompiled/artplayer/index.js @@ -142,7 +142,7 @@ this[globalName] = mainExports; } } -})({"gEVO5":[function(require,module,exports) { +})({"eFv8l":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _indexLess = require("bundle-text:./style/index.less"); @@ -192,89 +192,85 @@ var _storage = require("./storage"); var _storageDefault = parcelHelpers.interopDefault(_storage); var _plugins = require("./plugins"); var _pluginsDefault = parcelHelpers.interopDefault(_plugins); -var _ads = require("./ads"); -var _adsDefault = parcelHelpers.interopDefault(_ads); var _mobile = require("./mobile"); var _mobileDefault = parcelHelpers.interopDefault(_mobile); let id = 0; const instances = []; -class Artplayer extends _emitterDefault.default { +class Artplayer extends (0, _emitterDefault.default) { constructor(option, readyCallback){ super(); this.id = ++id; const mergeOption = _utils.mergeDeep(Artplayer.option, option); - this.option = _optionValidatorDefault.default(mergeOption, _schemeDefault.default); + this.option = (0, _optionValidatorDefault.default)(mergeOption, (0, _schemeDefault.default)); this.isLock = false; this.isReady = false; this.isFocus = false; this.isInput = false; this.isDestroy = false; - this.whitelist = new _whitelistDefault.default(this); - this.template = new _templateDefault.default(this); - this.events = new _eventsDefault.default(this); + this.whitelist = new (0, _whitelistDefault.default)(this); + this.template = new (0, _templateDefault.default)(this); + this.events = new (0, _eventsDefault.default)(this); if (this.whitelist.state) { - this.storage = new _storageDefault.default(this); - this.icons = new _iconsDefault.default(this); - this.i18n = new _i18NDefault.default(this); - this.notice = new _noticeDefault.default(this); - this.player = new _playerDefault.default(this); - this.layers = new _layerDefault.default(this); - this.controls = new _controlDefault.default(this); - this.contextmenu = new _contextmenuDefault.default(this); - this.subtitle = new _subtitleDefault.default(this); - this.ads = new _adsDefault.default(this); - this.info = new _infoDefault.default(this); - this.loading = new _loadingDefault.default(this); - this.hotkey = new _hotkeyDefault.default(this); - this.mask = new _maskDefault.default(this); - this.setting = new _settingDefault.default(this); - this.plugins = new _pluginsDefault.default(this); - } else this.mobile = new _mobileDefault.default(this); - if (typeof readyCallback === 'function') this.on('ready', ()=>readyCallback.call(this) - ); + this.storage = new (0, _storageDefault.default)(this); + this.icons = new (0, _iconsDefault.default)(this); + this.i18n = new (0, _i18NDefault.default)(this); + this.notice = new (0, _noticeDefault.default)(this); + this.player = new (0, _playerDefault.default)(this); + this.layers = new (0, _layerDefault.default)(this); + this.controls = new (0, _controlDefault.default)(this); + this.contextmenu = new (0, _contextmenuDefault.default)(this); + this.subtitle = new (0, _subtitleDefault.default)(this); + this.info = new (0, _infoDefault.default)(this); + this.loading = new (0, _loadingDefault.default)(this); + this.hotkey = new (0, _hotkeyDefault.default)(this); + this.mask = new (0, _maskDefault.default)(this); + this.setting = new (0, _settingDefault.default)(this); + this.plugins = new (0, _pluginsDefault.default)(this); + } else this.mobile = new (0, _mobileDefault.default)(this); + if (typeof readyCallback === "function") this.on("ready", ()=>readyCallback.call(this)); instances.push(this); } static get instances() { return instances; } static get version() { - return "4.4.3"; + return "4.5.1"; } static get env() { return "development"; } static get build() { - return "1654176459288"; + return "1655875801847"; } static get config() { - return _configDefault.default; + return 0, _configDefault.default; } static get utils() { return _utils; } static get scheme() { - return _schemeDefault.default; + return 0, _schemeDefault.default; } static get Emitter() { - return _emitterDefault.default; + return 0, _emitterDefault.default; } static get validator() { - return _optionValidatorDefault.default; + return 0, _optionValidatorDefault.default; } static get kindOf() { - return _optionValidatorDefault.default.kindOf; + return (0, _optionValidatorDefault.default).kindOf; } static get html() { - return _templateDefault.default.html; + return (0, _templateDefault.default).html; } static get option() { return { - container: '#artplayer', - url: '', - poster: '', - title: '', - type: '', - theme: '#f00', + container: "#artplayer", + url: "", + poster: "", + title: "", + type: "", + theme: "#f00", volume: 0.7, isLive: false, muted: false, @@ -301,7 +297,6 @@ class Artplayer extends _emitterDefault.default { fastForward: false, autoPlayback: false, autoOrientation: false, - ads: [], layers: [], contextmenu: [], controls: [], @@ -311,19 +306,19 @@ class Artplayer extends _emitterDefault.default { plugins: [], whitelist: [], thumbnails: { - url: '', + url: "", number: 60, column: 10 }, subtitle: { - url: '', - type: '', + url: "", + type: "", style: {}, - encoding: 'utf-8' + encoding: "utf-8" }, moreVideoAttr: { controls: false, - preload: _utils.isSafari ? 'auto' : 'metadata' + preload: _utils.isSafari ? "auto" : "metadata" }, icons: {}, customType: {}, @@ -341,7 +336,7 @@ class Artplayer extends _emitterDefault.default { this.template.destroy(removeHtml); instances.splice(instances.indexOf(this), 1); this.isDestroy = true; - this.emit('destroy'); + this.emit("destroy"); } } exports.default = Artplayer; @@ -369,20 +364,20 @@ Artplayer.MOBILE_AUTO_ORIENTATION_TIME = 200; Artplayer.INFO_LOOP_TIME = 1000; Artplayer.FAST_FORWARD_VALUE = 3; Artplayer.FAST_FORWARD_TIME = 1000; -if (typeof document !== 'undefined') { - if (!document.getElementById('artplayer-style')) { - const $style = document.createElement('style'); - $style.id = 'artplayer-style'; - $style.textContent = _indexLessDefault.default; +if (typeof document !== "undefined") { + if (!document.getElementById("artplayer-style")) { + const $style = document.createElement("style"); + $style.id = "artplayer-style"; + $style.textContent = (0, _indexLessDefault.default); document.head.appendChild($style); } } -if (typeof window !== 'undefined') window['Artplayer'] = Artplayer; +if (typeof window !== "undefined") window["Artplayer"] = Artplayer; // eslint-disable-next-line no-console -console.log(`%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`, 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', ''); +console.log(`%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`, "color: #fff; background: #5f5f5f", "color: #fff; background: #4bc729", ""); -},{"bundle-text:./style/index.less":"doPnH","option-validator":"2tbdu","./utils/emitter":"8uSwy","./utils":"euhMG","./scheme":"jVxq1","./config":"1hSww","./whitelist":"eCrHi","./template":"eG0JW","./i18n":"6Q0In","./player":"kmRM5","./control":"nK2ZQ","./contextmenu":"iygWX","./info":"6tuCt","./subtitle":"1kFyE","./events":"akAUN","./hotkey":"f1oWx","./layer":"bKuSu","./loading":"4AfId","./notice":"aKncc","./mask":"1R5LH","./icons":"bPpva","./setting":"i2oRN","./storage":"9ruid","./plugins":"7Fd4c","./ads":"47pqz","./mobile":"hMVZh","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"doPnH":[function(require,module,exports) { -module.exports = ".art-video-player {\n z-index: 20;\n width: 100%;\n height: 100%;\n zoom: 1;\n color: #eee;\n text-align: left;\n direction: ltr;\n user-select: none;\n -webkit-tap-highlight-color: #0000;\n touch-action: manipulation;\n -ms-high-contrast-adjust: none;\n background-color: #000;\n outline: none;\n margin: 0 auto;\n font-family: Roboto, Arial, Helvetica, sans-serif;\n font-size: 14px;\n line-height: 1.3;\n display: flex;\n position: relative;\n}\n\n.art-video-player *, .art-video-player :before, .art-video-player :after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\n.art-video-player ::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n}\n\n.art-video-player ::-webkit-scrollbar-thumb {\n background-color: #666;\n}\n\n.art-video-player ::-webkit-scrollbar-thumb:hover {\n background-color: #ccc;\n}\n\n.art-video-player .art-icon {\n justify-content: center;\n align-items: center;\n line-height: 1.5;\n display: inline-flex;\n}\n\n.art-video-player .art-icon svg {\n fill: #fff;\n}\n\n.art-video-player img {\n max-width: 100%;\n vertical-align: top;\n}\n\n@supports ((-webkit-backdrop-filter: initial) or (backdrop-filter: initial)) {\n .art-video-player .art-backdrop-filter {\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000b3 !important;\n }\n}\n\n.art-video-player .art-video {\n z-index: 10;\n width: 100%;\n height: 100%;\n cursor: pointer;\n background-color: #000;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-poster {\n z-index: 11;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-subtitle {\n z-index: 20;\n width: 100%;\n text-align: center;\n color: #fff;\n pointer-events: none;\n text-shadow: 1px 0 1px #000, 0 1px 1px #000, -1px 0 1px #000, 0 -1px 1px #000, 1px 1px 1px #000, -1px -1px 1px #000, 1px -1px 1px #000, -1px 1px 1px #000;\n padding: 0 20px;\n font-size: 20px;\n display: none;\n position: absolute;\n bottom: 10px;\n}\n\n.art-video-player .art-subtitle p {\n word-break: break-all;\n height: fit-content;\n margin: 5px 0 0;\n line-height: 1.2;\n}\n\n.art-video-player.art-subtitle-show .art-subtitle {\n display: block;\n}\n\n.art-video-player.art-control-show .art-subtitle {\n bottom: 50px;\n}\n\n.art-video-player .art-danmuku {\n z-index: 30;\n width: 100%;\n height: 100%;\n pointer-events: none;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers {\n z-index: 40;\n width: 100%;\n height: 100%;\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers .art-layer {\n pointer-events: auto;\n}\n\n.art-video-player.art-layer-show .art-layers {\n display: block;\n}\n\n.art-video-player .art-mask {\n z-index: 50;\n width: 100%;\n height: 100%;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-mask .art-state {\n width: 60px;\n height: 60px;\n opacity: .85;\n cursor: pointer;\n pointer-events: all;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n bottom: 65px;\n right: 30px;\n}\n\n.art-video-player.art-mask-show .art-mask {\n display: flex;\n}\n\n.art-video-player.art-mobile .art-state {\n position: static;\n}\n\n.art-video-player .art-loading {\n z-index: 70;\n width: 100%;\n height: 100%;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player.art-loading-show .art-loading {\n display: flex;\n}\n\n.art-video-player .art-bottom {\n z-index: 60;\n height: 100px;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n flex-direction: column;\n justify-content: space-between;\n padding: 50px 10px 0;\n transition: all .2s ease-in-out;\n display: flex;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.art-video-player .art-bottom .art-progress {\n z-index: 0;\n pointer-events: auto;\n flex: 1;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress {\n height: 4px;\n cursor: pointer;\n flex-direction: row;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner {\n height: 50%;\n width: 100%;\n background: #fff3;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded {\n z-index: 10;\n height: 100%;\n width: 0;\n background: #fff6;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played {\n z-index: 20;\n height: 100%;\n width: 0;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight {\n z-index: 30;\n height: 100%;\n pointer-events: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span {\n width: 7px;\n height: 100%;\n pointer-events: auto;\n background: #fff;\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n visibility: hidden;\n z-index: 40;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n transition: transform .1s ease-in-out;\n position: absolute;\n transform: scale(.1);\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon {\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-select: none;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip {\n z-index: 50;\n height: 20px;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background: #000000b3;\n border-radius: 3px;\n padding: 0 5px;\n font-size: 12px;\n font-weight: bold;\n line-height: 20px;\n display: none;\n position: absolute;\n top: -25px;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-thumbnails {\n pointer-events: none;\n background-color: #000000b3;\n display: none;\n position: absolute;\n bottom: 8px;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-loop {\n width: 100%;\n height: 100%;\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point {\n width: 2px;\n height: 8px;\n background: #ffffffbf;\n position: absolute;\n top: -2px;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-controls {\n z-index: 1;\n pointer-events: auto;\n height: 45px;\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-controls .art-controls-left, .art-video-player .art-bottom .art-controls .art-controls-right {\n display: flex;\n}\n\n.art-video-player .art-bottom .art-controls .art-controls-center {\n height: 100%;\n flex: 1;\n justify-content: center;\n align-items: center;\n padding: 0 10px;\n display: flex;\n}\n\n.art-video-player .art-bottom .art-controls .art-controls-right {\n justify-content: flex-end;\n}\n\n.art-video-player .art-bottom .art-controls .art-control {\n opacity: .9;\n min-height: 36px;\n min-width: 36px;\n text-align: center;\n cursor: pointer;\n white-space: nowrap;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n line-height: 1;\n display: flex;\n}\n\n.art-video-player .art-bottom .art-controls .art-control .art-icon {\n float: left;\n height: 36px;\n width: 36px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-bottom .art-controls .art-control:hover {\n opacity: 1;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-onlyText {\n padding: 0 10px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel {\n float: left;\n width: 0;\n height: 100%;\n transition: margin .2s cubic-bezier(.4, 0, 1, 1), width .2s cubic-bezier(.4, 0, 1, 1);\n position: relative;\n overflow: hidden;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle {\n width: 12px;\n height: 12px;\n background: #fff;\n border-radius: 12px;\n margin-top: -6px;\n position: absolute;\n top: 50%;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before {\n background: #fff;\n left: -54px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after {\n background: #fff3;\n left: 6px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before, .art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after {\n content: \"\";\n height: 3px;\n width: 60px;\n margin-top: -2px;\n display: block;\n position: absolute;\n top: 50%;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel {\n width: 60px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality {\n z-index: 30;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys {\n width: 100px;\n text-align: center;\n color: #fff;\n background: #000c;\n border-radius: 3px;\n padding: 5px 0;\n display: none;\n position: absolute;\n bottom: 35px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item {\n height: 30px;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-shadow: 0 0 2px #00000080;\n line-height: 30px;\n overflow: hidden;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys {\n display: block;\n}\n\n.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner {\n height: 100%;\n}\n\n.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n visibility: visible;\n transform: scale(1);\n}\n\n.art-video-player.art-control-show .art-bottom, .art-video-player.art-hover .art-bottom {\n opacity: 1;\n visibility: visible;\n}\n\n.art-video-player.art-error .art-progress-indicator, .art-video-player.art-destroy .art-progress-indicator, .art-video-player.art-error .art-progress-tip, .art-video-player.art-destroy .art-progress-tip {\n display: none !important;\n}\n\n.art-video-player.art-mobile .art-bottom {\n padding: 50px 7px 0;\n}\n\n.art-video-player.art-mobile .art-bottom .art-controls {\n height: 40px;\n}\n\n.art-video-player.art-mobile .art-bottom .art-progress-indicator {\n visibility: visible !important;\n transform: scale(1) !important;\n}\n\n.art-video-player .art-notice {\n z-index: 80;\n width: 100%;\n pointer-events: none;\n padding: 10px;\n font-size: 14px;\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.art-video-player .art-notice .art-notice-inner {\n color: #fff;\n background-color: #0009;\n border-radius: 3px;\n padding: 5px 10px;\n display: inline-block;\n}\n\n.art-video-player.art-notice-show .art-notice {\n display: flex;\n}\n\n.art-video-player .art-contextmenus {\n z-index: 120;\n min-width: 200px;\n background-color: #000000e6;\n border-radius: 3px;\n flex-direction: column;\n padding: 5px 0;\n display: none;\n position: absolute;\n top: 10px;\n left: 10px;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu {\n cursor: pointer;\n color: #fff;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-shadow: 0 0 2px #00000080;\n border-bottom: 1px solid #ffffff1a;\n padding: 10px 15px;\n font-size: 12px;\n display: block;\n overflow: hidden;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu a {\n color: #fff;\n text-decoration: none;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span {\n padding: 0 7px;\n display: inline-block;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span:hover, .art-video-player .art-contextmenus .art-contextmenu span.art-current {\n color: #00c9ff;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:last-child {\n border-bottom: none;\n}\n\n.art-video-player.art-contextmenu-show .art-contextmenus {\n display: flex;\n}\n\n.art-video-player .art-settings {\n z-index: 90;\n height: auto;\n max-height: 300px;\n background-color: #000000e6;\n border-radius: 3px;\n font-size: 13px;\n transition: all .2s;\n display: none;\n position: absolute;\n bottom: 50px;\n right: 10px;\n overflow: auto;\n}\n\n.art-video-player .art-settings .art-setting-panel {\n display: none;\n}\n\n.art-video-player .art-settings .art-setting-panel.art-current {\n display: block;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item {\n height: 35px;\n cursor: pointer;\n color: #fffc;\n justify-content: space-between;\n align-items: center;\n padding: 0 5px;\n line-height: 1;\n display: flex;\n overflow: hidden;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item:hover, .art-video-player .art-settings .art-setting-panel .art-setting-item.art-current {\n color: #fff;\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon {\n width: 30px;\n height: 30px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check {\n visibility: hidden;\n height: 15px;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check {\n visibility: visible;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left {\n white-space: nowrap;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon {\n height: 24px;\n width: 24px;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right {\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip {\n white-space: nowrap;\n color: #ffffff80;\n margin-right: 5px;\n font-size: 12px;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon {\n height: 24px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range {\n height: 3px;\n width: 80px;\n appearance: none;\n background-color: #fff3;\n outline: none;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item-back {\n border-bottom: 1px solid #ffffff1a;\n}\n\n.art-video-player.art-setting-show .art-settings {\n display: block;\n}\n\n.art-video-player.art-mobile .art-settings {\n max-height: 200px;\n}\n\n.art-video-player .art-info {\n z-index: 100;\n width: 350px;\n color: #fff;\n -webkit-font-smoothing: antialiased;\n background-color: #000000e6;\n flex-direction: column;\n padding: 10px;\n font-family: Noto Sans CJK SC DemiLight, Roboto, Segoe UI, Tahoma, Arial, Helvetica, sans-serif;\n font-size: 12px;\n display: none;\n position: absolute;\n top: 10px;\n left: 10px;\n}\n\n.art-video-player .art-info .art-info-item {\n margin-bottom: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-item .art-info-title {\n width: 100px;\n text-align: right;\n}\n\n.art-video-player .art-info .art-info-item .art-info-content {\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n padding-left: 5px;\n overflow: hidden;\n}\n\n.art-video-player .art-info .art-info-item:last-child {\n margin-bottom: 0;\n}\n\n.art-video-player .art-info .art-info-close {\n cursor: pointer;\n position: absolute;\n top: 5px;\n right: 5px;\n}\n\n.art-video-player.art-info-show .art-info {\n display: flex;\n}\n\n.art-video-player.art-hide-cursor * {\n cursor: none !important;\n}\n\n.art-video-player[data-aspect-ratio] video {\n box-sizing: content-box;\n object-fit: fill;\n}\n\n.art-video-player.art-fullscreen-web {\n z-index: 9999;\n width: 100%;\n height: 100%;\n position: fixed;\n inset: 0;\n}\n\n.art-video-player .art-mini-header {\n z-index: 110;\n height: 35px;\n color: #fff;\n opacity: 0;\n visibility: hidden;\n background-color: #00000080;\n justify-content: space-between;\n align-items: center;\n line-height: 35px;\n transition: all .2s ease-in-out;\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.art-video-player .art-mini-header .art-mini-title {\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: move;\n flex: 1;\n padding: 0 10px;\n overflow: hidden;\n}\n\n.art-video-player .art-mini-header .art-mini-close {\n width: 35px;\n text-align: center;\n cursor: pointer;\n font-size: 22px;\n}\n\n.art-video-player.art-is-dragging {\n opacity: .7;\n}\n\n.art-video-player.art-mini {\n z-index: 9999;\n width: 400px;\n height: 225px;\n position: fixed;\n box-shadow: 0 2px 5px #00000029, 0 3px 6px #0003;\n}\n\n.art-video-player.art-mini .art-mini-header {\n user-select: none;\n display: flex;\n}\n\n.art-video-player.art-mini.art-hover .art-mini-header {\n opacity: 1;\n visibility: visible;\n}\n\n.art-video-player.art-mini .art-mask .art-state {\n position: static;\n}\n\n.art-video-player.art-mini .art-contextmenu, .art-video-player.art-mini .art-bottom, .art-video-player.art-mini .art-danmu, .art-video-player.art-mini .art-info, .art-video-player.art-mini .art-layers, .art-video-player.art-mini .art-notice, .art-video-player.art-mini .art-settings, .art-video-player.art-mini .art-subtitle {\n display: none !important;\n}\n\n.art-auto-size {\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-auto-size .art-video-player {\n transition: all .2s;\n}\n\n.art-video-player[data-flip=\"horizontal\"] .art-video {\n transform: scaleX(-1);\n}\n\n.art-video-player[data-flip=\"vertical\"] .art-video {\n transform: scaleY(-1);\n}\n\n.art-video-player .art-layer-miniProgressBar {\n height: 2px;\n background-color: var(--theme);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.art-video-player .art-layer-lock {\n height: 34px;\n width: 34px;\n color: #fff;\n background-color: #00000080;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n top: calc(50% - 17px);\n left: 15px;\n}\n\n.art-video-player.art-lock .art-bottom {\n display: none !important;\n}\n\n.art-video-player.art-lock .art-subtitle {\n bottom: 10px !important;\n}\n\n.art-video-player.art-lock .art-layer-miniProgressBar {\n display: block !important;\n}\n\n.art-video-player.art-control-show .art-layer-miniProgressBar {\n display: none;\n}\n\n.art-video-player.art-control-show .art-layer-lock {\n display: flex;\n}\n\n.art-video-player .art-control-selector {\n position: relative;\n}\n\n.art-video-player .art-control-selector .art-selector-list {\n min-width: 100px;\n max-width: 200px;\n max-height: 200px;\n text-align: center;\n color: #fff;\n background-color: #000c;\n border-radius: 3px;\n padding: 5px 0;\n display: none;\n position: absolute;\n bottom: 35px;\n overflow: auto;\n}\n\n.art-video-player .art-control-selector .art-selector-list .art-selector-item {\n height: 30px;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-shadow: 0 0 2px #00000080;\n padding: 0 5px;\n line-height: 30px;\n overflow: hidden;\n}\n\n.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover, .art-video-player .art-control-selector .art-selector-list .art-selector-item.art-current {\n color: #00c9ff;\n}\n\n.art-video-player .art-control-selector:hover .art-selector-list {\n display: block;\n}\n\n[class*=\"hint--\"] {\n font-style: normal;\n display: inline-block;\n position: relative;\n}\n\n[class*=\"hint--\"]:before, [class*=\"hint--\"]:after {\n visibility: hidden;\n opacity: 0;\n z-index: 1000000;\n pointer-events: none;\n transition: all .3s;\n transition-delay: 0s;\n position: absolute;\n transform: translate3d(0, 0, 0);\n}\n\n[class*=\"hint--\"]:hover:before, [class*=\"hint--\"]:hover:after {\n visibility: visible;\n opacity: 1;\n transition-delay: .1s;\n}\n\n[class*=\"hint--\"]:before {\n content: \"\";\n z-index: 1000000;\n background: none;\n border: 6px solid #0000;\n position: absolute;\n}\n\n[class*=\"hint--\"]:after {\n color: #fff;\n white-space: nowrap;\n background: #000;\n padding: 8px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 12px;\n line-height: 12px;\n}\n\n[class*=\"hint--\"][aria-label]:after {\n content: attr(aria-label);\n}\n\n[class*=\"hint--\"][data-hint]:after {\n content: attr(data-hint);\n}\n\n[aria-label=\"\"]:before, [aria-label=\"\"]:after, [data-hint=\"\"]:before, [data-hint=\"\"]:after {\n display: none !important;\n}\n\n.hint--top-left:before, .hint--top-right:before, .hint--top:before {\n border-top-color: #000;\n}\n\n.hint--bottom-left:before, .hint--bottom-right:before, .hint--bottom:before {\n border-bottom-color: #000;\n}\n\n.hint--left:before {\n border-left-color: #000;\n}\n\n.hint--right:before {\n border-right-color: #000;\n}\n\n.hint--top:before {\n margin-bottom: -11px;\n}\n\n.hint--top:before, .hint--top:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top:before {\n left: calc(50% - 6px);\n}\n\n.hint--top:after {\n transform: translateX(-50%);\n}\n\n.hint--top:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top:hover:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--bottom:before {\n margin-top: -11px;\n}\n\n.hint--bottom:before, .hint--bottom:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom:after {\n transform: translateX(-50%);\n}\n\n.hint--bottom:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom:hover:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--right:before {\n margin-bottom: -6px;\n margin-left: -11px;\n}\n\n.hint--right:after {\n margin-bottom: -14px;\n}\n\n.hint--right:before, .hint--right:after {\n bottom: 50%;\n left: 100%;\n}\n\n.hint--right:hover:before, .hint--right:hover:after {\n transform: translateX(8px);\n}\n\n.hint--left:before {\n margin-bottom: -6px;\n margin-right: -11px;\n}\n\n.hint--left:after {\n margin-bottom: -14px;\n}\n\n.hint--left:before, .hint--left:after {\n bottom: 50%;\n right: 100%;\n}\n\n.hint--left:hover:before, .hint--left:hover:after {\n transform: translateX(-8px);\n}\n\n.hint--top-left:before {\n margin-bottom: -11px;\n}\n\n.hint--top-left:before, .hint--top-left:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--top-left:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top-left:hover:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--top-right:before {\n margin-bottom: -11px;\n}\n\n.hint--top-right:before, .hint--top-right:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--top-right:hover:before, .hint--top-right:hover:after {\n transform: translateY(-8px);\n}\n\n.hint--bottom-left:before {\n margin-top: -11px;\n}\n\n.hint--bottom-left:before, .hint--bottom-left:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--bottom-left:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom-left:hover:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--bottom-right:before {\n margin-top: -11px;\n}\n\n.hint--bottom-right:before, .hint--bottom-right:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--bottom-right:hover:before, .hint--bottom-right:hover:after {\n transform: translateY(8px);\n}\n\n.hint--small:after, .hint--medium:after, .hint--large:after {\n white-space: normal;\n word-wrap: break-word;\n line-height: 1.4em;\n}\n\n.hint--small:after {\n width: 80px;\n}\n\n.hint--medium:after {\n width: 150px;\n}\n\n.hint--large:after {\n width: 300px;\n}\n\n[class*=\"hint--\"]:after {\n text-shadow: 0 -1px #000;\n box-shadow: 4px 4px 8px #0000004d;\n}\n\n.hint--error:after {\n text-shadow: 0 -1px #592726;\n background-color: #b34e4d;\n}\n\n.hint--error.hint--top-left:before, .hint--error.hint--top-right:before, .hint--error.hint--top:before {\n border-top-color: #b34e4d;\n}\n\n.hint--error.hint--bottom-left:before, .hint--error.hint--bottom-right:before, .hint--error.hint--bottom:before {\n border-bottom-color: #b34e4d;\n}\n\n.hint--error.hint--left:before {\n border-left-color: #b34e4d;\n}\n\n.hint--error.hint--right:before {\n border-right-color: #b34e4d;\n}\n\n.hint--warning:after {\n text-shadow: 0 -1px #6c5328;\n background-color: #c09854;\n}\n\n.hint--warning.hint--top-left:before, .hint--warning.hint--top-right:before, .hint--warning.hint--top:before {\n border-top-color: #c09854;\n}\n\n.hint--warning.hint--bottom-left:before, .hint--warning.hint--bottom-right:before, .hint--warning.hint--bottom:before {\n border-bottom-color: #c09854;\n}\n\n.hint--warning.hint--left:before {\n border-left-color: #c09854;\n}\n\n.hint--warning.hint--right:before {\n border-right-color: #c09854;\n}\n\n.hint--info:after {\n text-shadow: 0 -1px #1a3c4d;\n background-color: #3986ac;\n}\n\n.hint--info.hint--top-left:before, .hint--info.hint--top-right:before, .hint--info.hint--top:before {\n border-top-color: #3986ac;\n}\n\n.hint--info.hint--bottom-left:before, .hint--info.hint--bottom-right:before, .hint--info.hint--bottom:before {\n border-bottom-color: #3986ac;\n}\n\n.hint--info.hint--left:before {\n border-left-color: #3986ac;\n}\n\n.hint--info.hint--right:before {\n border-right-color: #3986ac;\n}\n\n.hint--success:after {\n text-shadow: 0 -1px #1a321a;\n background-color: #458746;\n}\n\n.hint--success.hint--top-left:before, .hint--success.hint--top-right:before, .hint--success.hint--top:before {\n border-top-color: #458746;\n}\n\n.hint--success.hint--bottom-left:before, .hint--success.hint--bottom-right:before, .hint--success.hint--bottom:before {\n border-bottom-color: #458746;\n}\n\n.hint--success.hint--left:before {\n border-left-color: #458746;\n}\n\n.hint--success.hint--right:before {\n border-right-color: #458746;\n}\n\n.hint--always:after, .hint--always:before {\n opacity: 1;\n visibility: visible;\n}\n\n.hint--always.hint--top:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--always.hint--top-left:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top-left:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--always.hint--top-right:before, .hint--always.hint--top-right:after {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--bottom:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--always.hint--bottom-left:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom-left:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--always.hint--bottom-right:before, .hint--always.hint--bottom-right:after {\n transform: translateY(8px);\n}\n\n.hint--always.hint--left:before, .hint--always.hint--left:after {\n transform: translateX(-8px);\n}\n\n.hint--always.hint--right:before, .hint--always.hint--right:after {\n transform: translateX(8px);\n}\n\n.hint--rounded:after {\n border-radius: 4px;\n}\n\n.hint--no-animate:before, .hint--no-animate:after {\n transition-duration: 0s;\n}\n\n.hint--bounce:before, .hint--bounce:after {\n -webkit-transition: opacity .3s, visibility .3s, -webkit-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n -moz-transition: opacity .3s, visibility .3s, -moz-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n transition: opacity .3s, visibility .3s, transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n}\n\n.hint--no-shadow:before, .hint--no-shadow:after {\n text-shadow: initial;\n box-shadow: initial;\n}\n\n.hint--no-arrow:before {\n display: none;\n}\n\n"; +},{"bundle-text:./style/index.less":"SvnDa","option-validator":"2tbdu","./utils/emitter":"elSLF","./utils":"jmgNb","./scheme":"gL38d","./config":"2ZnKD","./whitelist":"gd0pl","./template":"bDTDS","./i18n":"k0CtI","./player":"35XKf","./control":"faO0X","./contextmenu":"5npaZ","./info":"6vVKE","./subtitle":"4exyO","./events":"dz5ul","./hotkey":"1nFqF","./layer":"fvy8V","./loading":"h8KPY","./notice":"cr1XY","./mask":"llnR4","./icons":"gP6M7","./setting":"e5Aaq","./storage":"feFxw","./plugins":"h1hfO","./mobile":"c9n1Y","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"SvnDa":[function(require,module,exports) { +module.exports = ".art-video-player {\n z-index: 20;\n width: 100%;\n height: 100%;\n zoom: 1;\n color: #eee;\n text-align: left;\n direction: ltr;\n user-select: none;\n -webkit-tap-highlight-color: #0000;\n touch-action: manipulation;\n -ms-high-contrast-adjust: none;\n background-color: #000;\n outline: 0;\n margin: 0 auto;\n font-family: Roboto, Arial, Helvetica, sans-serif;\n font-size: 14px;\n line-height: 1.3;\n display: flex;\n position: relative;\n}\n\n.art-video-player *, .art-video-player :before, .art-video-player :after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\n.art-video-player ::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n}\n\n.art-video-player ::-webkit-scrollbar-thumb {\n background-color: #666;\n}\n\n.art-video-player ::-webkit-scrollbar-thumb:hover {\n background-color: #ccc;\n}\n\n.art-video-player .art-icon {\n justify-content: center;\n align-items: center;\n line-height: 1.5;\n display: inline-flex;\n}\n\n.art-video-player .art-icon svg {\n fill: #fff;\n}\n\n.art-video-player img {\n max-width: 100%;\n vertical-align: top;\n}\n\n@supports ((-webkit-backdrop-filter: initial) or (backdrop-filter: initial)) {\n .art-video-player .art-backdrop-filter {\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000b3 !important;\n }\n}\n\n.art-video-player .art-video {\n z-index: 10;\n width: 100%;\n height: 100%;\n cursor: pointer;\n background-color: #000;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-poster {\n z-index: 11;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-subtitle {\n z-index: 20;\n width: 100%;\n text-align: center;\n color: #fff;\n pointer-events: none;\n text-shadow: 1px 0 1px #000, 0 1px 1px #000, -1px 0 1px #000, 0 -1px 1px #000, 1px 1px 1px #000, -1px -1px 1px #000, 1px -1px 1px #000, -1px 1px 1px #000;\n padding: 0 20px;\n font-size: 20px;\n display: none;\n position: absolute;\n bottom: 10px;\n}\n\n.art-video-player .art-subtitle p {\n word-break: break-all;\n height: fit-content;\n margin: 5px 0 0;\n line-height: 1.2;\n}\n\n.art-video-player.art-subtitle-show .art-subtitle {\n display: block;\n}\n\n.art-video-player.art-control-show .art-subtitle {\n bottom: 50px;\n}\n\n.art-video-player .art-danmuku {\n z-index: 30;\n width: 100%;\n height: 100%;\n pointer-events: none;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers {\n z-index: 40;\n width: 100%;\n height: 100%;\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers .art-layer {\n pointer-events: auto;\n}\n\n.art-video-player.art-layer-show .art-layers {\n display: block;\n}\n\n.art-video-player .art-mask {\n z-index: 50;\n width: 100%;\n height: 100%;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-mask .art-state {\n width: 60px;\n height: 60px;\n opacity: .85;\n cursor: pointer;\n pointer-events: all;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n bottom: 65px;\n right: 30px;\n}\n\n.art-video-player.art-mask-show .art-mask {\n display: flex;\n}\n\n.art-video-player.art-mobile .art-state {\n position: static;\n}\n\n.art-video-player .art-loading {\n z-index: 70;\n width: 100%;\n height: 100%;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player.art-loading-show .art-loading {\n display: flex;\n}\n\n.art-video-player .art-bottom {\n z-index: 60;\n height: 100px;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n flex-direction: column;\n justify-content: space-between;\n padding: 50px 10px 0;\n transition: all .2s ease-in-out;\n display: flex;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.art-video-player .art-bottom .art-progress {\n z-index: 0;\n pointer-events: auto;\n flex: 1;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress {\n height: 4px;\n cursor: pointer;\n flex-direction: row;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner {\n height: 50%;\n width: 100%;\n background: #fff3;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded {\n z-index: 10;\n height: 100%;\n width: 0;\n background: #fff6;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played {\n z-index: 20;\n height: 100%;\n width: 0;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight {\n z-index: 30;\n height: 100%;\n pointer-events: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span {\n width: 7px;\n height: 100%;\n pointer-events: auto;\n background: #fff;\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n visibility: hidden;\n z-index: 40;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n transition: transform .1s ease-in-out;\n position: absolute;\n transform: scale(.1);\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon {\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-select: none;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip {\n z-index: 50;\n height: 20px;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background: #000000b3;\n border-radius: 3px;\n padding: 0 5px;\n font-size: 12px;\n font-weight: bold;\n line-height: 20px;\n display: none;\n position: absolute;\n top: -25px;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-thumbnails {\n pointer-events: none;\n background-color: #000000b3;\n display: none;\n position: absolute;\n bottom: 8px;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-loop {\n width: 100%;\n height: 100%;\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point {\n width: 2px;\n height: 8px;\n background: #ffffffbf;\n position: absolute;\n top: -2px;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-controls {\n z-index: 1;\n pointer-events: auto;\n height: 45px;\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-controls .art-controls-left, .art-video-player .art-bottom .art-controls .art-controls-right {\n display: flex;\n}\n\n.art-video-player .art-bottom .art-controls .art-controls-center {\n height: 100%;\n flex: 1;\n justify-content: center;\n align-items: center;\n padding: 0 10px;\n display: flex;\n}\n\n.art-video-player .art-bottom .art-controls .art-controls-right {\n justify-content: flex-end;\n}\n\n.art-video-player .art-bottom .art-controls .art-control {\n opacity: .9;\n min-height: 36px;\n min-width: 36px;\n text-align: center;\n cursor: pointer;\n white-space: nowrap;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n line-height: 1;\n display: flex;\n}\n\n.art-video-player .art-bottom .art-controls .art-control .art-icon {\n float: left;\n height: 36px;\n width: 36px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-bottom .art-controls .art-control:hover {\n opacity: 1;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-onlyText {\n padding: 0 10px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel {\n float: left;\n width: 0;\n height: 100%;\n transition: margin .2s cubic-bezier(.4, 0, 1, 1), width .2s cubic-bezier(.4, 0, 1, 1);\n position: relative;\n overflow: hidden;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle {\n width: 12px;\n height: 12px;\n background: #fff;\n border-radius: 12px;\n margin-top: -6px;\n position: absolute;\n top: 50%;\n left: 0;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before {\n background: #fff;\n left: -54px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after {\n background: #fff3;\n left: 6px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before, .art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after {\n content: \"\";\n height: 3px;\n width: 60px;\n margin-top: -2px;\n display: block;\n position: absolute;\n top: 50%;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel {\n width: 60px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality {\n z-index: 30;\n position: relative;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys {\n width: 100px;\n text-align: center;\n color: #fff;\n background: #000c;\n border-radius: 3px;\n padding: 5px 0;\n display: none;\n position: absolute;\n bottom: 35px;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item {\n height: 30px;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-shadow: 0 0 2px #00000080;\n line-height: 30px;\n overflow: hidden;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys {\n display: block;\n}\n\n.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner {\n height: 100%;\n}\n\n.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n visibility: visible;\n transform: scale(1);\n}\n\n.art-video-player.art-control-show .art-bottom, .art-video-player.art-hover .art-bottom {\n opacity: 1;\n visibility: visible;\n}\n\n.art-video-player.art-error .art-progress-indicator, .art-video-player.art-destroy .art-progress-indicator, .art-video-player.art-error .art-progress-tip, .art-video-player.art-destroy .art-progress-tip {\n display: none !important;\n}\n\n.art-video-player.art-mobile .art-bottom {\n padding: 50px 7px 0;\n}\n\n.art-video-player.art-mobile .art-bottom .art-controls {\n height: 40px;\n}\n\n.art-video-player.art-mobile .art-bottom .art-progress-indicator {\n visibility: visible !important;\n transform: scale(1) !important;\n}\n\n.art-video-player .art-notice {\n z-index: 80;\n width: 100%;\n pointer-events: none;\n padding: 10px;\n font-size: 14px;\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.art-video-player .art-notice .art-notice-inner {\n color: #fff;\n background-color: #0009;\n border-radius: 3px;\n padding: 5px 10px;\n display: inline-block;\n}\n\n.art-video-player.art-notice-show .art-notice {\n display: flex;\n}\n\n.art-video-player .art-contextmenus {\n z-index: 120;\n min-width: 200px;\n background-color: #000000e6;\n border-radius: 3px;\n flex-direction: column;\n padding: 5px 0;\n display: none;\n position: absolute;\n top: 10px;\n left: 10px;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu {\n cursor: pointer;\n color: #fff;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-shadow: 0 0 2px #00000080;\n border-bottom: 1px solid #ffffff1a;\n padding: 10px 15px;\n font-size: 12px;\n display: block;\n overflow: hidden;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu a {\n color: #fff;\n text-decoration: none;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span {\n padding: 0 7px;\n display: inline-block;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span:hover, .art-video-player .art-contextmenus .art-contextmenu span.art-current {\n color: #00c9ff;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu:last-child {\n border-bottom: none;\n}\n\n.art-video-player.art-contextmenu-show .art-contextmenus {\n display: flex;\n}\n\n.art-video-player .art-settings {\n z-index: 90;\n height: auto;\n max-height: 300px;\n background-color: #000000e6;\n border-radius: 3px;\n font-size: 13px;\n transition: all .2s;\n display: none;\n position: absolute;\n bottom: 50px;\n right: 10px;\n overflow: auto;\n}\n\n.art-video-player .art-settings .art-setting-panel {\n display: none;\n}\n\n.art-video-player .art-settings .art-setting-panel.art-current {\n display: block;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item {\n height: 35px;\n cursor: pointer;\n color: #fffc;\n justify-content: space-between;\n align-items: center;\n padding: 0 5px;\n line-height: 1;\n display: flex;\n overflow: hidden;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item:hover, .art-video-player .art-settings .art-setting-panel .art-setting-item.art-current {\n color: #fff;\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon {\n width: 30px;\n height: 30px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check {\n visibility: hidden;\n height: 15px;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check {\n visibility: visible;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left {\n white-space: nowrap;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon {\n height: 24px;\n width: 24px;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right {\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip {\n white-space: nowrap;\n color: #ffffff80;\n margin-right: 5px;\n font-size: 12px;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon {\n height: 24px;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range {\n height: 3px;\n width: 80px;\n appearance: none;\n background-color: #fff3;\n outline: none;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item-back {\n border-bottom: 1px solid #ffffff1a;\n}\n\n.art-video-player.art-setting-show .art-settings {\n display: block;\n}\n\n.art-video-player.art-mobile .art-settings {\n max-height: 200px;\n}\n\n.art-video-player .art-info {\n z-index: 100;\n width: 350px;\n color: #fff;\n -webkit-font-smoothing: antialiased;\n background-color: #000000e6;\n flex-direction: column;\n padding: 10px;\n font-family: Noto Sans CJK SC DemiLight, Roboto, Segoe UI, Tahoma, Arial, Helvetica, sans-serif;\n font-size: 12px;\n display: none;\n position: absolute;\n top: 10px;\n left: 10px;\n}\n\n.art-video-player .art-info .art-info-item {\n margin-bottom: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-item .art-info-title {\n width: 100px;\n text-align: right;\n}\n\n.art-video-player .art-info .art-info-item .art-info-content {\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n padding-left: 5px;\n overflow: hidden;\n}\n\n.art-video-player .art-info .art-info-item:last-child {\n margin-bottom: 0;\n}\n\n.art-video-player .art-info .art-info-close {\n cursor: pointer;\n position: absolute;\n top: 5px;\n right: 5px;\n}\n\n.art-video-player.art-info-show .art-info {\n display: flex;\n}\n\n.art-video-player.art-hide-cursor * {\n cursor: none !important;\n}\n\n.art-video-player[data-aspect-ratio] video {\n box-sizing: content-box;\n object-fit: fill;\n}\n\n.art-video-player.art-fullscreen-web {\n z-index: 9999;\n width: 100%;\n height: 100%;\n position: fixed;\n inset: 0;\n}\n\n.art-video-player .art-mini-header {\n z-index: 110;\n height: 35px;\n color: #fff;\n opacity: 0;\n visibility: hidden;\n background-color: #00000080;\n justify-content: space-between;\n align-items: center;\n line-height: 35px;\n transition: all .2s ease-in-out;\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.art-video-player .art-mini-header .art-mini-title {\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: move;\n flex: 1;\n padding: 0 10px;\n overflow: hidden;\n}\n\n.art-video-player .art-mini-header .art-mini-close {\n width: 35px;\n text-align: center;\n cursor: pointer;\n font-size: 22px;\n}\n\n.art-video-player.art-is-dragging {\n opacity: .7;\n}\n\n.art-video-player.art-mini {\n z-index: 9999;\n width: 400px;\n height: 225px;\n position: fixed;\n box-shadow: 0 2px 5px #00000029, 0 3px 6px #0003;\n}\n\n.art-video-player.art-mini .art-mini-header {\n user-select: none;\n display: flex;\n}\n\n.art-video-player.art-mini.art-hover .art-mini-header {\n opacity: 1;\n visibility: visible;\n}\n\n.art-video-player.art-mini .art-mask .art-state {\n position: static;\n}\n\n.art-video-player.art-mini .art-contextmenu, .art-video-player.art-mini .art-bottom, .art-video-player.art-mini .art-danmu, .art-video-player.art-mini .art-info, .art-video-player.art-mini .art-layers, .art-video-player.art-mini .art-notice, .art-video-player.art-mini .art-settings, .art-video-player.art-mini .art-subtitle {\n display: none !important;\n}\n\n.art-auto-size {\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-auto-size .art-video-player {\n transition: all .2s;\n}\n\n.art-video-player[data-flip=\"horizontal\"] .art-video {\n transform: scaleX(-1);\n}\n\n.art-video-player[data-flip=\"vertical\"] .art-video {\n transform: scaleY(-1);\n}\n\n.art-video-player .art-layer-miniProgressBar {\n height: 2px;\n background-color: var(--theme);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.art-video-player .art-layer-lock {\n height: 34px;\n width: 34px;\n color: #fff;\n background-color: #00000080;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n top: calc(50% - 17px);\n left: 15px;\n}\n\n.art-video-player .art-layer-autoPlayback {\n background-color: #000c;\n border-radius: 3px;\n align-items: center;\n padding: 10px;\n font-size: 13px;\n line-height: 1;\n display: none;\n position: absolute;\n bottom: 60px;\n left: 20px;\n}\n\n.art-video-player .art-layer-autoPlayback .art-autoPlayback-close {\n cursor: pointer;\n align-items: center;\n margin-right: 10px;\n display: flex;\n}\n\n.art-video-player .art-layer-autoPlayback .art-autoPlayback-close svg {\n width: 15px;\n height: 15px;\n fill: #00c9ff;\n}\n\n.art-video-player .art-layer-autoPlayback .art-autoPlayback-last {\n margin-right: 10px;\n}\n\n.art-video-player .art-layer-autoPlayback .art-autoPlayback-jump {\n color: #00c9ff;\n cursor: pointer;\n}\n\n.art-video-player.art-lock .art-bottom {\n display: none !important;\n}\n\n.art-video-player.art-lock .art-subtitle {\n bottom: 10px !important;\n}\n\n.art-video-player.art-lock .art-layer-miniProgressBar {\n display: block !important;\n}\n\n.art-video-player.art-control-show .art-layer-miniProgressBar {\n display: none;\n}\n\n.art-video-player.art-control-show .art-layer-lock {\n display: flex;\n}\n\n.art-video-player .art-control-selector {\n position: relative;\n}\n\n.art-video-player .art-control-selector .art-selector-list {\n min-width: 100px;\n max-width: 200px;\n max-height: 200px;\n text-align: center;\n color: #fff;\n background-color: #000c;\n border-radius: 3px;\n padding: 5px 0;\n display: none;\n position: absolute;\n bottom: 35px;\n overflow: auto;\n}\n\n.art-video-player .art-control-selector .art-selector-list .art-selector-item {\n height: 30px;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-shadow: 0 0 2px #00000080;\n padding: 0 5px;\n line-height: 30px;\n overflow: hidden;\n}\n\n.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover, .art-video-player .art-control-selector .art-selector-list .art-selector-item.art-current {\n color: #00c9ff;\n}\n\n.art-video-player .art-control-selector:hover .art-selector-list {\n display: block;\n}\n\n[class*=\"hint--\"] {\n font-style: normal;\n display: inline-block;\n position: relative;\n}\n\n[class*=\"hint--\"]:before, [class*=\"hint--\"]:after {\n visibility: hidden;\n opacity: 0;\n z-index: 1000000;\n pointer-events: none;\n transition: all .3s;\n transition-delay: 0s;\n position: absolute;\n transform: translate3d(0, 0, 0);\n}\n\n[class*=\"hint--\"]:hover:before, [class*=\"hint--\"]:hover:after {\n visibility: visible;\n opacity: 1;\n transition-delay: .1s;\n}\n\n[class*=\"hint--\"]:before {\n content: \"\";\n z-index: 1000001;\n background: none;\n border: 6px solid #0000;\n position: absolute;\n}\n\n[class*=\"hint--\"]:after {\n color: #fff;\n white-space: nowrap;\n background: #000;\n padding: 8px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 12px;\n line-height: 12px;\n}\n\n[class*=\"hint--\"][aria-label]:after {\n content: attr(aria-label);\n}\n\n[class*=\"hint--\"][data-hint]:after {\n content: attr(data-hint);\n}\n\n[aria-label=\"\"]:before, [aria-label=\"\"]:after, [data-hint=\"\"]:before, [data-hint=\"\"]:after {\n display: none !important;\n}\n\n.hint--top-left:before, .hint--top-right:before, .hint--top:before {\n border-top-color: #000;\n}\n\n.hint--bottom-left:before, .hint--bottom-right:before, .hint--bottom:before {\n border-bottom-color: #000;\n}\n\n.hint--left:before {\n border-left-color: #000;\n}\n\n.hint--right:before {\n border-right-color: #000;\n}\n\n.hint--top:before {\n margin-bottom: -11px;\n}\n\n.hint--top:before, .hint--top:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top:before {\n left: calc(50% - 6px);\n}\n\n.hint--top:after {\n transform: translateX(-50%);\n}\n\n.hint--top:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top:hover:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--bottom:before {\n margin-top: -11px;\n}\n\n.hint--bottom:before, .hint--bottom:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom:after {\n transform: translateX(-50%);\n}\n\n.hint--bottom:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom:hover:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--right:before {\n margin-bottom: -6px;\n margin-left: -11px;\n}\n\n.hint--right:after {\n margin-bottom: -14px;\n}\n\n.hint--right:before, .hint--right:after {\n bottom: 50%;\n left: 100%;\n}\n\n.hint--right:hover:before, .hint--right:hover:after {\n transform: translateX(8px);\n}\n\n.hint--left:before {\n margin-bottom: -6px;\n margin-right: -11px;\n}\n\n.hint--left:after {\n margin-bottom: -14px;\n}\n\n.hint--left:before, .hint--left:after {\n bottom: 50%;\n right: 100%;\n}\n\n.hint--left:hover:before, .hint--left:hover:after {\n transform: translateX(-8px);\n}\n\n.hint--top-left:before {\n margin-bottom: -11px;\n}\n\n.hint--top-left:before, .hint--top-left:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--top-left:hover:before {\n transform: translateY(-8px);\n}\n\n.hint--top-left:hover:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--top-right:before {\n margin-bottom: -11px;\n}\n\n.hint--top-right:before, .hint--top-right:after {\n bottom: 100%;\n left: 50%;\n}\n\n.hint--top-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--top-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--top-right:hover:before, .hint--top-right:hover:after {\n transform: translateY(-8px);\n}\n\n.hint--bottom-left:before {\n margin-top: -11px;\n}\n\n.hint--bottom-left:before, .hint--bottom-left:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-left:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-left:after {\n margin-left: 12px;\n transform: translateX(-100%);\n}\n\n.hint--bottom-left:hover:before {\n transform: translateY(8px);\n}\n\n.hint--bottom-left:hover:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--bottom-right:before {\n margin-top: -11px;\n}\n\n.hint--bottom-right:before, .hint--bottom-right:after {\n top: 100%;\n left: 50%;\n}\n\n.hint--bottom-right:before {\n left: calc(50% - 6px);\n}\n\n.hint--bottom-right:after {\n margin-left: -12px;\n transform: translateX(0);\n}\n\n.hint--bottom-right:hover:before, .hint--bottom-right:hover:after {\n transform: translateY(8px);\n}\n\n.hint--small:after, .hint--medium:after, .hint--large:after {\n white-space: normal;\n word-wrap: break-word;\n line-height: 1.4em;\n}\n\n.hint--small:after {\n width: 80px;\n}\n\n.hint--medium:after {\n width: 150px;\n}\n\n.hint--large:after {\n width: 300px;\n}\n\n[class*=\"hint--\"]:after {\n text-shadow: 0 -1px #000;\n box-shadow: 4px 4px 8px #0000004d;\n}\n\n.hint--error:after {\n text-shadow: 0 -1px #592726;\n background-color: #b34e4d;\n}\n\n.hint--error.hint--top-left:before, .hint--error.hint--top-right:before, .hint--error.hint--top:before {\n border-top-color: #b34e4d;\n}\n\n.hint--error.hint--bottom-left:before, .hint--error.hint--bottom-right:before, .hint--error.hint--bottom:before {\n border-bottom-color: #b34e4d;\n}\n\n.hint--error.hint--left:before {\n border-left-color: #b34e4d;\n}\n\n.hint--error.hint--right:before {\n border-right-color: #b34e4d;\n}\n\n.hint--warning:after {\n text-shadow: 0 -1px #6c5328;\n background-color: #c09854;\n}\n\n.hint--warning.hint--top-left:before, .hint--warning.hint--top-right:before, .hint--warning.hint--top:before {\n border-top-color: #c09854;\n}\n\n.hint--warning.hint--bottom-left:before, .hint--warning.hint--bottom-right:before, .hint--warning.hint--bottom:before {\n border-bottom-color: #c09854;\n}\n\n.hint--warning.hint--left:before {\n border-left-color: #c09854;\n}\n\n.hint--warning.hint--right:before {\n border-right-color: #c09854;\n}\n\n.hint--info:after {\n text-shadow: 0 -1px #1a3c4d;\n background-color: #3986ac;\n}\n\n.hint--info.hint--top-left:before, .hint--info.hint--top-right:before, .hint--info.hint--top:before {\n border-top-color: #3986ac;\n}\n\n.hint--info.hint--bottom-left:before, .hint--info.hint--bottom-right:before, .hint--info.hint--bottom:before {\n border-bottom-color: #3986ac;\n}\n\n.hint--info.hint--left:before {\n border-left-color: #3986ac;\n}\n\n.hint--info.hint--right:before {\n border-right-color: #3986ac;\n}\n\n.hint--success:after {\n text-shadow: 0 -1px #1a321a;\n background-color: #458746;\n}\n\n.hint--success.hint--top-left:before, .hint--success.hint--top-right:before, .hint--success.hint--top:before {\n border-top-color: #458746;\n}\n\n.hint--success.hint--bottom-left:before, .hint--success.hint--bottom-right:before, .hint--success.hint--bottom:before {\n border-bottom-color: #458746;\n}\n\n.hint--success.hint--left:before {\n border-left-color: #458746;\n}\n\n.hint--success.hint--right:before {\n border-right-color: #458746;\n}\n\n.hint--always:after, .hint--always:before {\n opacity: 1;\n visibility: visible;\n}\n\n.hint--always.hint--top:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top:after {\n transform: translateX(-50%)translateY(-8px);\n}\n\n.hint--always.hint--top-left:before {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--top-left:after {\n transform: translateX(-100%)translateY(-8px);\n}\n\n.hint--always.hint--top-right:before, .hint--always.hint--top-right:after {\n transform: translateY(-8px);\n}\n\n.hint--always.hint--bottom:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom:after {\n transform: translateX(-50%)translateY(8px);\n}\n\n.hint--always.hint--bottom-left:before {\n transform: translateY(8px);\n}\n\n.hint--always.hint--bottom-left:after {\n transform: translateX(-100%)translateY(8px);\n}\n\n.hint--always.hint--bottom-right:before, .hint--always.hint--bottom-right:after {\n transform: translateY(8px);\n}\n\n.hint--always.hint--left:before, .hint--always.hint--left:after {\n transform: translateX(-8px);\n}\n\n.hint--always.hint--right:before, .hint--always.hint--right:after {\n transform: translateX(8px);\n}\n\n.hint--rounded:after {\n border-radius: 4px;\n}\n\n.hint--no-animate:before, .hint--no-animate:after {\n transition-duration: 0s;\n}\n\n.hint--bounce:before, .hint--bounce:after {\n -webkit-transition: opacity .3s, visibility .3s, -webkit-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n -moz-transition: opacity .3s, visibility .3s, -moz-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n transition: opacity .3s, visibility .3s, transform .3s cubic-bezier(.71, 1.7, .77, 1.24);\n}\n\n.hint--no-shadow:before, .hint--no-shadow:after {\n text-shadow: initial;\n box-shadow: initial;\n}\n\n.hint--no-arrow:before {\n display: none;\n}\n\n"; },{}],"2tbdu":[function(require,module,exports) { !function(r, t) { @@ -527,7 +522,7 @@ module.exports = ".art-video-player {\n z-index: 20;\n width: 100%;\n height: return f.kindOf = c, f; }); -},{}],"8uSwy":[function(require,module,exports) { +},{}],"elSLF":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); class Emitter { @@ -567,20 +562,20 @@ class Emitter { } exports.default = Emitter; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6SDkN":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5dUr6":[function(require,module,exports) { exports.interopDefault = function(a) { return a && a.__esModule ? a : { default: a }; }; exports.defineInteropFlag = function(a) { - Object.defineProperty(a, '__esModule', { + Object.defineProperty(a, "__esModule", { value: true }); }; exports.exportAll = function(source, dest) { Object.keys(source).forEach(function(key) { - if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) return; + if (key === "default" || key === "__esModule" || dest.hasOwnProperty(key)) return; Object.defineProperty(dest, key, { enumerable: true, get: function() { @@ -597,7 +592,7 @@ exports.export = function(dest, destName, get) { }); }; -},{}],"euhMG":[function(require,module,exports) { +},{}],"jmgNb":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _dom = require("./dom"); @@ -617,41 +612,25 @@ parcelHelpers.exportAll(_format, exports); var _compatibility = require("./compatibility"); parcelHelpers.exportAll(_compatibility, exports); -},{"./dom":"iWXW0","./error":"kCmly","./subtitle":"2bAfM","./file":"jIGsL","./property":"amiWs","./time":"4movt","./format":"9vUua","./compatibility":"bRDYJ","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"iWXW0":[function(require,module,exports) { +},{"./dom":"dNynC","./error":"622b3","./subtitle":"bGuws","./file":"luB4T","./property":"91nLd","./time":"f9kBR","./format":"eWip5","./compatibility":"gotDS","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dNynC":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "query", ()=>query -); -parcelHelpers.export(exports, "queryAll", ()=>queryAll -); -parcelHelpers.export(exports, "addClass", ()=>addClass -); -parcelHelpers.export(exports, "removeClass", ()=>removeClass -); -parcelHelpers.export(exports, "hasClass", ()=>hasClass -); -parcelHelpers.export(exports, "append", ()=>append -); -parcelHelpers.export(exports, "remove", ()=>remove -); -parcelHelpers.export(exports, "setStyle", ()=>setStyle -); -parcelHelpers.export(exports, "setStyles", ()=>setStyles -); -parcelHelpers.export(exports, "getStyle", ()=>getStyle -); -parcelHelpers.export(exports, "sublings", ()=>sublings -); -parcelHelpers.export(exports, "inverseClass", ()=>inverseClass -); -parcelHelpers.export(exports, "tooltip", ()=>tooltip -); -parcelHelpers.export(exports, "isInViewport", ()=>isInViewport -); -parcelHelpers.export(exports, "includeFromEvent", ()=>includeFromEvent -); -parcelHelpers.export(exports, "replaceElement", ()=>replaceElement -); +parcelHelpers.export(exports, "query", ()=>query); +parcelHelpers.export(exports, "queryAll", ()=>queryAll); +parcelHelpers.export(exports, "addClass", ()=>addClass); +parcelHelpers.export(exports, "removeClass", ()=>removeClass); +parcelHelpers.export(exports, "hasClass", ()=>hasClass); +parcelHelpers.export(exports, "append", ()=>append); +parcelHelpers.export(exports, "remove", ()=>remove); +parcelHelpers.export(exports, "setStyle", ()=>setStyle); +parcelHelpers.export(exports, "setStyles", ()=>setStyles); +parcelHelpers.export(exports, "getStyle", ()=>getStyle); +parcelHelpers.export(exports, "sublings", ()=>sublings); +parcelHelpers.export(exports, "inverseClass", ()=>inverseClass); +parcelHelpers.export(exports, "tooltip", ()=>tooltip); +parcelHelpers.export(exports, "isInViewport", ()=>isInViewport); +parcelHelpers.export(exports, "includeFromEvent", ()=>includeFromEvent); +parcelHelpers.export(exports, "replaceElement", ()=>replaceElement); var _compatibility = require("./compatibility"); function query(selector, parent = document) { return parent.querySelector(selector); @@ -670,7 +649,7 @@ function hasClass(target, className) { } function append(parent, child) { if (child instanceof Element) parent.appendChild(child); - else parent.insertAdjacentHTML('beforeend', String(child)); + else parent.insertAdjacentHTML("beforeend", String(child)); return parent.lastElementChild || parent.lastChild; } function remove(child) { @@ -691,18 +670,16 @@ function getStyle(element, key, numberType = true) { return numberType ? parseFloat(value) : value; } function sublings(target) { - return Array.from(target.parentElement.children).filter((item)=>item !== target - ); + return Array.from(target.parentElement.children).filter((item)=>item !== target); } function inverseClass(target, className) { - sublings(target).forEach((item)=>removeClass(item, className) - ); + sublings(target).forEach((item)=>removeClass(item, className)); addClass(target, className); } -function tooltip(target, msg, pos = 'top') { - if (_compatibility.isMobile) return; - target.setAttribute('aria-label', msg); - addClass(target, 'hint--rounded'); +function tooltip(target, msg, pos = "top") { + if (0, _compatibility.isMobile) return; + target.setAttribute("aria-label", msg); + addClass(target, "hint--rounded"); addClass(target, `hint--${pos}`); } function isInViewport(el, offset = 0) { @@ -721,24 +698,17 @@ function replaceElement(newChild, oldChild) { return newChild; } -},{"./compatibility":"bRDYJ","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"bRDYJ":[function(require,module,exports) { +},{"./compatibility":"gotDS","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gotDS":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "userAgent", ()=>userAgent -); -parcelHelpers.export(exports, "isMobile", ()=>isMobile -); -parcelHelpers.export(exports, "isSafari", ()=>isSafari -); -parcelHelpers.export(exports, "isWechat", ()=>isWechat -); -parcelHelpers.export(exports, "isIE", ()=>isIE -); -parcelHelpers.export(exports, "isAndroid", ()=>isAndroid -); -parcelHelpers.export(exports, "isIOS", ()=>isIOS -); -const userAgent = typeof window !== 'undefined' ? window.navigator.userAgent : ''; +parcelHelpers.export(exports, "userAgent", ()=>userAgent); +parcelHelpers.export(exports, "isMobile", ()=>isMobile); +parcelHelpers.export(exports, "isSafari", ()=>isSafari); +parcelHelpers.export(exports, "isWechat", ()=>isWechat); +parcelHelpers.export(exports, "isIE", ()=>isIE); +parcelHelpers.export(exports, "isAndroid", ()=>isAndroid); +parcelHelpers.export(exports, "isIOS", ()=>isIOS); +const userAgent = typeof window !== "undefined" ? window.navigator.userAgent : ""; const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent); const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent); const isWechat = /MicroMessenger/i.test(userAgent); @@ -746,18 +716,16 @@ const isIE = /MSIE|Trident/i.test(userAgent); const isAndroid = /android/i.test(userAgent); const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"kCmly":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"622b3":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "ArtPlayerError", ()=>ArtPlayerError -); -parcelHelpers.export(exports, "errorHandle", ()=>errorHandle -); +parcelHelpers.export(exports, "ArtPlayerError", ()=>ArtPlayerError); +parcelHelpers.export(exports, "errorHandle", ()=>errorHandle); class ArtPlayerError extends Error { constructor(message, context){ super(message); - if (typeof Error.captureStackTrace === 'function') Error.captureStackTrace(this, context || this.constructor); - this.name = 'ArtPlayerError'; + if (typeof Error.captureStackTrace === "function") Error.captureStackTrace(this, context || this.constructor); + this.name = "ArtPlayerError"; } } function errorHandle(condition, msg) { @@ -765,44 +733,41 @@ function errorHandle(condition, msg) { return condition; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"2bAfM":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bGuws":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "srtToVtt", ()=>srtToVtt -); -parcelHelpers.export(exports, "vttToBlob", ()=>vttToBlob -); -parcelHelpers.export(exports, "assToVtt", ()=>assToVtt -); +parcelHelpers.export(exports, "srtToVtt", ()=>srtToVtt); +parcelHelpers.export(exports, "vttToBlob", ()=>vttToBlob); +parcelHelpers.export(exports, "assToVtt", ()=>assToVtt); function fixSrt(srt) { return srt.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g, (_, $1, $2)=>{ let ms = $2.slice(0, 3); - if ($2.length === 1) ms = $2 + '00'; - if ($2.length === 2) ms = $2 + '0'; + if ($2.length === 1) ms = $2 + "00"; + if ($2.length === 2) ms = $2 + "0"; return `${$1},${ms}`; }); } function srtToVtt(srtText) { - return 'WEBVTT \r\n\r\n'.concat(fixSrt(srtText).replace(/\{\\([ibu])\}/g, '').replace(/\{\\([ibu])1\}/g, '<$1>').replace(/\{([ibu])\}/g, '<$1>').replace(/\{\/([ibu])\}/g, '').replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g, '$1.$2').replace(/{[\s\S]*?}/g, '').concat('\r\n\r\n')); + return "WEBVTT \r\n\r\n".concat(fixSrt(srtText).replace(/\{\\([ibu])\}/g, "").replace(/\{\\([ibu])1\}/g, "<$1>").replace(/\{([ibu])\}/g, "<$1>").replace(/\{\/([ibu])\}/g, "").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g, "$1.$2").replace(/{[\s\S]*?}/g, "").concat("\r\n\r\n")); } function vttToBlob(vttText) { return URL.createObjectURL(new Blob([ vttText ], { - type: 'text/vtt' + type: "text/vtt" })); } function assToVtt(ass) { - const reAss = new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$", 'i'); - function fixTime(time = '') { + const reAss = new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$", "i"); + function fixTime(time = "") { return time.split(/[:.]/).map((item, index, arr)=>{ if (index === arr.length - 1) { if (item.length === 1) return `.${item}00`; if (item.length === 2) return `.${item}0`; - } else if (item.length === 1) return (index === 0 ? '0' : ':0') + item; + } else if (item.length === 1) return (index === 0 ? "0" : ":0") + item; // eslint-disable-next-line no-nested-ternary return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`; - }).join(''); + }).join(""); } return `WEBVTT\n\n${ass.split(/\r?\n/).map((line)=>{ const m = line.match(reAss); @@ -810,32 +775,27 @@ function assToVtt(ass) { return { start: fixTime(m[1].trim()), end: fixTime(m[2].trim()), - text: m[5].replace(/{[\s\S]*?}/g, '').replace(/(\\N)/g, '\n').trim().split(/\r?\n/).map((item)=>item.trim() - ).join('\n') + text: m[5].replace(/{[\s\S]*?}/g, "").replace(/(\\N)/g, "\n").trim().split(/\r?\n/).map((item)=>item.trim()).join("\n") }; - }).filter((line)=>line - ).map((line, index)=>{ + }).filter((line)=>line).map((line, index)=>{ if (line) return `${index + 1}\n${line.start} --> ${line.end}\n${line.text}`; - return ''; - }).filter((line)=>line.trim() - ).join('\n\n')}`; + return ""; + }).filter((line)=>line.trim()).join("\n\n")}`; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"jIGsL":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"luB4T":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "getExt", ()=>getExt -); -parcelHelpers.export(exports, "download", ()=>download -); +parcelHelpers.export(exports, "getExt", ()=>getExt); +parcelHelpers.export(exports, "download", ()=>download); function getExt(url) { - if (url.includes('?')) return getExt(url.split('?')[0]); - if (url.includes('#')) return getExt(url.split('#')[0]); - return url.trim().toLowerCase().split('.').pop(); + if (url.includes("?")) return getExt(url.split("?")[0]); + if (url.includes("#")) return getExt(url.split("#")[0]); + return url.trim().toLowerCase().split(".").pop(); } function download(url, name) { - const elink = document.createElement('a'); - elink.style.display = 'none'; + const elink = document.createElement("a"); + elink.style.display = "none"; elink.href = url; elink.download = name; document.body.appendChild(elink); @@ -843,17 +803,13 @@ function download(url, name) { document.body.removeChild(elink); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"amiWs":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"91nLd":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "def", ()=>def -); -parcelHelpers.export(exports, "has", ()=>has -); -parcelHelpers.export(exports, "get", ()=>get -); -parcelHelpers.export(exports, "mergeDeep", ()=>mergeDeep -); +parcelHelpers.export(exports, "def", ()=>def); +parcelHelpers.export(exports, "has", ()=>has); +parcelHelpers.export(exports, "get", ()=>get); +parcelHelpers.export(exports, "mergeDeep", ()=>mergeDeep); const def = Object.defineProperty; const { hasOwnProperty } = Object.prototype; function has(obj, name) { @@ -863,8 +819,7 @@ function get(obj, name) { return Object.getOwnPropertyDescriptor(obj, name); } function mergeDeep(...objects) { - const isObject = (item)=>item && typeof item === 'object' && !Array.isArray(item) - ; + const isObject = (item)=>item && typeof item === "object" && !Array.isArray(item); return objects.reduce((prev, obj)=>{ Object.keys(obj).forEach((key)=>{ const pVal = prev[key]; @@ -877,18 +832,14 @@ function mergeDeep(...objects) { }, {}); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"4movt":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"f9kBR":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "sleep", ()=>sleep -); -parcelHelpers.export(exports, "debounce", ()=>debounce -); -parcelHelpers.export(exports, "throttle", ()=>throttle -); +parcelHelpers.export(exports, "sleep", ()=>sleep); +parcelHelpers.export(exports, "debounce", ()=>debounce); +parcelHelpers.export(exports, "throttle", ()=>throttle); function sleep(ms = 0) { - return new Promise((resolve)=>setTimeout(resolve, ms) - ); + return new Promise((resolve)=>setTimeout(resolve, ms)); } function debounce(func, wait, context) { let timeout; @@ -929,21 +880,17 @@ function throttle(callback, delay) { return fn; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"9vUua":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"eWip5":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "clamp", ()=>clamp -); -parcelHelpers.export(exports, "secondToTime", ()=>secondToTime -); -parcelHelpers.export(exports, "escape", ()=>escape -); +parcelHelpers.export(exports, "clamp", ()=>clamp); +parcelHelpers.export(exports, "secondToTime", ()=>secondToTime); +parcelHelpers.export(exports, "escape", ()=>escape); function clamp(num, a, b) { return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b)); } function secondToTime(second) { - const add0 = (num)=>num < 10 ? `0${num}` : String(num) - ; + const add0 = (num)=>num < 10 ? `0${num}` : String(num); const hour = Math.floor(second / 3600); const min = Math.floor((second - hour * 3600) / 60); const sec = Math.floor(second - hour * 3600 - min * 60); @@ -954,34 +901,32 @@ function secondToTime(second) { ] : [ min, sec - ]).map(add0).join(':'); + ]).map(add0).join(":"); } function escape(str) { return str.replace(/[&<>'"]/g, (tag)=>({ - '&': '&', - '<': '<', - '>': '>', - "'": ''', - '"': '"' - })[tag] || tag - ); + "&": "&", + "<": "<", + ">": ">", + "'": "'", + '"': """ + })[tag] || tag); } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"jVxq1":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gL38d":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "ComponentOption", ()=>ComponentOption -); +parcelHelpers.export(exports, "ComponentOption", ()=>ComponentOption); var _utils = require("../utils"); -const a = 'array'; -const b = 'boolean'; -const s = 'string'; -const n = 'number'; -const o = 'object'; -const f = 'function'; -const r = 'regexp'; +const a = "array"; +const b = "boolean"; +const s = "string"; +const n = "number"; +const o = "object"; +const f = "function"; +const r = "regexp"; function validElement(value, type, paths) { - return _utils.errorHandle(type === s || type === n || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`); + return (0, _utils.errorHandle)(type === s || type === n || value instanceof Element, `${paths.join(".")} require '${s}' or 'Element' type`); } const ComponentOption = { html: validElement, @@ -1034,11 +979,6 @@ exports.default = { fastForward: b, autoPlayback: b, autoOrientation: b, - ads: [ - { - url: s - }, - ], plugins: [ f ], @@ -1059,11 +999,11 @@ exports.default = { ...ComponentOption, position: (value, _, paths)=>{ const position = [ - 'top', - 'left', - 'right' + "top", + "left", + "right" ]; - return _utils.errorHandle(position.includes(value), `${paths.join('.')} only accept ${position.toString()} as parameters`); + return (0, _utils.errorHandle)(position.includes(value), `${paths.join(".")} only accept ${position.toString()} as parameters`); } }, ], @@ -1096,71 +1036,71 @@ exports.default = { customType: o }; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"1hSww":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"2ZnKD":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); exports.default = { propertys: [ - 'audioTracks', - 'autoplay', - 'buffered', - 'controller', - 'controls', - 'crossOrigin', - 'currentSrc', - 'currentTime', - 'defaultMuted', - 'defaultPlaybackRate', - 'duration', - 'ended', - 'error', - 'loop', - 'mediaGroup', - 'muted', - 'networkState', - 'paused', - 'playbackRate', - 'played', - 'preload', - 'readyState', - 'seekable', - 'seeking', - 'src', - 'startDate', - 'textTracks', - 'videoTracks', - 'volume', + "audioTracks", + "autoplay", + "buffered", + "controller", + "controls", + "crossOrigin", + "currentSrc", + "currentTime", + "defaultMuted", + "defaultPlaybackRate", + "duration", + "ended", + "error", + "loop", + "mediaGroup", + "muted", + "networkState", + "paused", + "playbackRate", + "played", + "preload", + "readyState", + "seekable", + "seeking", + "src", + "startDate", + "textTracks", + "videoTracks", + "volume", ], methods: [ - 'addTextTrack', - 'canPlayType', - 'load', - 'play', - 'pause' + "addTextTrack", + "canPlayType", + "load", + "play", + "pause" ], events: [ - 'abort', - 'canplay', - 'canplaythrough', - 'durationchange', - 'emptied', - 'ended', - 'error', - 'loadeddata', - 'loadedmetadata', - 'loadstart', - 'pause', - 'play', - 'playing', - 'progress', - 'ratechange', - 'seeked', - 'seeking', - 'stalled', - 'suspend', - 'timeupdate', - 'volumechange', - 'waiting', + "abort", + "canplay", + "canplaythrough", + "durationchange", + "emptied", + "ended", + "error", + "loadeddata", + "loadedmetadata", + "loadstart", + "pause", + "play", + "playing", + "progress", + "ratechange", + "seeked", + "seeking", + "stalled", + "suspend", + "timeupdate", + "volumechange", + "waiting", ], prototypes: [ "width", @@ -1187,7 +1127,7 @@ exports.default = { ] }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"eCrHi":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gd0pl":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -1197,14 +1137,14 @@ class Whitelist { } get state() { const { option , constructor: { kindOf } , } = this.art; - return !_utils.isMobile || option.whitelist.some((item)=>{ + return !(0, _utils.isMobile) || option.whitelist.some((item)=>{ switch(kindOf(item)){ - case 'string': - return item === '*' || _utils.userAgent.indexOf(item) > -1; - case 'function': - return item(_utils.userAgent); - case 'regexp': - return item.test(_utils.userAgent); + case "string": + return item === "*" || (0, _utils.userAgent).indexOf(item) > -1; + case "function": + return item((0, _utils.userAgent)); + case "regexp": + return item.test((0, _utils.userAgent)); default: return false; } @@ -1213,7 +1153,7 @@ class Whitelist { } exports.default = Whitelist; -},{"./utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"eG0JW":[function(require,module,exports) { +},{"./utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bDTDS":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -1223,13 +1163,12 @@ class Template { const { option , constructor , whitelist } = art; if (option.container instanceof Element) this.$container = option.container; else { - this.$container = _utils.query(option.container); - _utils.errorHandle(this.$container, `No container element found by ${option.container}`); + this.$container = (0, _utils.query)(option.container); + (0, _utils.errorHandle)(this.$container, `No container element found by ${option.container}`); } const type = this.$container.tagName.toLowerCase(); - _utils.errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`); - _utils.errorHandle(constructor.instances.every((ins)=>ins.template.$container !== this.$container - ), 'Cannot mount multiple instances on the same dom element'); + (0, _utils.errorHandle)(type === "div", `Unsupported container element type, only support 'div' but got '${type}'`); + (0, _utils.errorHandle)(constructor.instances.every((ins)=>ins.template.$container !== this.$container), "Cannot mount multiple instances on the same dom element"); this.query = this.query.bind(this); this.$container.dataset.artId = art.id; this.$original = this.$container.cloneNode(true); @@ -1264,7 +1203,7 @@ class Template {
Player version:
-
${"4.4.3"}
+
${"4.5.1"}
Video url:
@@ -1300,42 +1239,42 @@ class Template { `; } query(className) { - return _utils.query(className, this.$container); + return (0, _utils.query)(className, this.$container); } desktop() { const { option } = this.art; if (!option.useSSR) this.$container.innerHTML = Template.html; - this.$player = this.query('.art-video-player'); - this.$video = this.query('.art-video'); - this.$poster = this.query('.art-poster'); - this.$subtitle = this.query('.art-subtitle'); - this.$danmuku = this.query('.art-danmuku'); - this.$bottom = this.query('.art-bottom'); - this.$progress = this.query('.art-progress'); - this.$controls = this.query('.art-controls'); - this.$controlsLeft = this.query('.art-controls-left'); - this.$controlsCenter = this.query('.art-controls-center'); - this.$controlsRight = this.query('.art-controls-right'); - this.$layer = this.query('.art-layers'); - this.$loading = this.query('.art-loading'); - this.$notice = this.query('.art-notice'); - this.$noticeInner = this.query('.art-notice-inner'); - this.$mask = this.query('.art-mask'); - this.$state = this.query('.art-state'); - this.$setting = this.query('.art-settings'); - this.$info = this.query('.art-info'); - this.$infoPanel = this.query('.art-info-panel'); - this.$infoClose = this.query('.art-info-close'); - this.$miniHeader = this.query('.art-mini-header'); - this.$miniTitle = this.query('.art-mini-title'); - this.$miniClose = this.query('.art-mini-close'); - this.$contextmenu = this.query('.art-contextmenus'); + this.$player = this.query(".art-video-player"); + this.$video = this.query(".art-video"); + this.$poster = this.query(".art-poster"); + this.$subtitle = this.query(".art-subtitle"); + this.$danmuku = this.query(".art-danmuku"); + this.$bottom = this.query(".art-bottom"); + this.$progress = this.query(".art-progress"); + this.$controls = this.query(".art-controls"); + this.$controlsLeft = this.query(".art-controls-left"); + this.$controlsCenter = this.query(".art-controls-center"); + this.$controlsRight = this.query(".art-controls-right"); + this.$layer = this.query(".art-layers"); + this.$loading = this.query(".art-loading"); + this.$notice = this.query(".art-notice"); + this.$noticeInner = this.query(".art-notice-inner"); + this.$mask = this.query(".art-mask"); + this.$state = this.query(".art-state"); + this.$setting = this.query(".art-settings"); + this.$info = this.query(".art-info"); + this.$infoPanel = this.query(".art-info-panel"); + this.$infoClose = this.query(".art-info-close"); + this.$miniHeader = this.query(".art-mini-header"); + this.$miniTitle = this.query(".art-mini-title"); + this.$miniClose = this.query(".art-mini-close"); + this.$contextmenu = this.query(".art-contextmenus"); if (option.backdrop) { - _utils.addClass(this.$setting, 'art-backdrop-filter'); - _utils.addClass(this.$contextmenu, 'art-backdrop-filter'); - _utils.addClass(this.$info, 'art-backdrop-filter'); + (0, _utils.addClass)(this.$setting, "art-backdrop-filter"); + (0, _utils.addClass)(this.$contextmenu, "art-backdrop-filter"); + (0, _utils.addClass)(this.$info, "art-backdrop-filter"); } - if (_utils.isMobile) _utils.addClass(this.$player, 'art-mobile'); + if (0, _utils.isMobile) (0, _utils.addClass)(this.$player, "art-mobile"); } mobile() { this.$container.innerHTML = ` @@ -1343,17 +1282,17 @@ class Template {
`; - this.$player = this.query('.art-video-player'); - this.$video = this.query('.art-video'); + this.$player = this.query(".art-video-player"); + this.$video = this.query(".art-video"); } destroy(removeHtml) { - if (removeHtml) _utils.replaceElement(this.$original, this.$container); - else _utils.addClass(this.$player, 'art-destroy'); + if (removeHtml) (0, _utils.replaceElement)(this.$original, this.$container); + else (0, _utils.addClass)(this.$player, "art-destroy"); } } exports.default = Template; -},{"./utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6Q0In":[function(require,module,exports) { +},{"./utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"k0CtI":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -1369,10 +1308,10 @@ class I18n { constructor(art){ this.art = art; this.languages = { - 'zh-cn': _zhCnJsonDefault.default, - 'zh-tw': _zhTwJsonDefault.default, - 'pl': _plJsonDefault.default, - 'cs': _csJsonDefault.default + "zh-cn": (0, _zhCnJsonDefault.default), + "zh-tw": (0, _zhTwJsonDefault.default), + "pl": (0, _plJsonDefault.default), + "cs": (0, _csJsonDefault.default) }; this.init(); } @@ -1384,25 +1323,25 @@ class I18n { return this.language[key] || key; } update(value) { - this.languages = _utils.mergeDeep(this.languages, value); + this.languages = (0, _utils.mergeDeep)(this.languages, value); this.init(); } } exports.default = I18n; -},{"../utils":"euhMG","./zh-cn.json":"b9Y6f","./zh-tw.json":"9Kly9","./pl.json":"krPOm","./cs.json":"jNcs5","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"b9Y6f":[function(require,module,exports) { -module.exports = JSON.parse("{\"Video Info\":\"统计信息\",\"Close\":\"关闭\",\"Video Load Failed\":\"加载失败\",\"Volume\":\"音量\",\"Play\":\"播放\",\"Pause\":\"暂停\",\"Rate\":\"速度\",\"Mute\":\"静音\",\"Video Flip\":\"画面翻转\",\"Horizontal\":\"水平\",\"Vertical\":\"垂直\",\"Reconnect\":\"重新连接\",\"Show Setting\":\"显示设置\",\"Hide Setting\":\"隐藏设置\",\"Screenshot\":\"截图\",\"Play Speed\":\"播放速度\",\"Aspect Ratio\":\"画面比例\",\"Default\":\"默认\",\"Normal\":\"正常\",\"Open\":\"打开\",\"Switch Video\":\"切换\",\"Switch Subtitle\":\"切换字幕\",\"Fullscreen\":\"全屏\",\"Exit Fullscreen\":\"退出全屏\",\"Web Fullscreen\":\"网页全屏\",\"Exit Web Fullscreen\":\"退出网页全屏\",\"Mini Player\":\"迷你播放器\",\"PIP Mode\":\"开启画中画\",\"Exit PIP Mode\":\"退出画中画\",\"PIP Not Supported\":\"不支持画中画\",\"Fullscreen Not Supported\":\"不支持全屏\",\"Subtitle Offset\":\"字幕偏移\",\"Auto playback at\":\"已为您定位至\"}"); +},{"../utils":"jmgNb","./zh-cn.json":"cVMb8","./zh-tw.json":"fS55m","./pl.json":"1JuQe","./cs.json":"4wwD8","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"cVMb8":[function(require,module,exports) { +module.exports = JSON.parse('{"Video Info":"\u7EDF\u8BA1\u4FE1\u606F","Close":"\u5173\u95ED","Video Load Failed":"\u52A0\u8F7D\u5931\u8D25","Volume":"\u97F3\u91CF","Play":"\u64AD\u653E","Pause":"\u6682\u505C","Rate":"\u901F\u5EA6","Mute":"\u9759\u97F3","Video Flip":"\u753B\u9762\u7FFB\u8F6C","Horizontal":"\u6C34\u5E73","Vertical":"\u5782\u76F4","Reconnect":"\u91CD\u65B0\u8FDE\u63A5","Show Setting":"\u663E\u793A\u8BBE\u7F6E","Hide Setting":"\u9690\u85CF\u8BBE\u7F6E","Screenshot":"\u622A\u56FE","Play Speed":"\u64AD\u653E\u901F\u5EA6","Aspect Ratio":"\u753B\u9762\u6BD4\u4F8B","Default":"\u9ED8\u8BA4","Normal":"\u6B63\u5E38","Open":"\u6253\u5F00","Switch Video":"\u5207\u6362","Switch Subtitle":"\u5207\u6362\u5B57\u5E55","Fullscreen":"\u5168\u5C4F","Exit Fullscreen":"\u9000\u51FA\u5168\u5C4F","Web Fullscreen":"\u7F51\u9875\u5168\u5C4F","Exit Web Fullscreen":"\u9000\u51FA\u7F51\u9875\u5168\u5C4F","Mini Player":"\u8FF7\u4F60\u64AD\u653E\u5668","PIP Mode":"\u5F00\u542F\u753B\u4E2D\u753B","Exit PIP Mode":"\u9000\u51FA\u753B\u4E2D\u753B","PIP Not Supported":"\u4E0D\u652F\u6301\u753B\u4E2D\u753B","Fullscreen Not Supported":"\u4E0D\u652F\u6301\u5168\u5C4F","Subtitle Offset":"\u5B57\u5E55\u504F\u79FB","Last Seen":"\u4E0A\u6B21\u770B\u5230","Jump Play":"\u8DF3\u8F6C\u64AD\u653E"}'); -},{}],"9Kly9":[function(require,module,exports) { -module.exports = JSON.parse("{\"Video Info\":\"統計訊息\",\"Close\":\"關閉\",\"Video Load Failed\":\"載入失敗\",\"Volume\":\"音量\",\"Play\":\"播放\",\"Pause\":\"暫停\",\"Rate\":\"速度\",\"Mute\":\"靜音\",\"Video Flip\":\"畫面翻轉\",\"Horizontal\":\"水平\",\"Vertical\":\"垂直\",\"Reconnect\":\"重新連接\",\"Show Setting\":\"顯示设置\",\"Hide Setting\":\"隱藏设置\",\"Screenshot\":\"截圖\",\"Play Speed\":\"播放速度\",\"Aspect Ratio\":\"畫面比例\",\"Default\":\"默認\",\"Normal\":\"正常\",\"Open\":\"打開\",\"Switch Video\":\"切換\",\"Switch Subtitle\":\"切換字幕\",\"Fullscreen\":\"全屏\",\"Exit Fullscreen\":\"退出全屏\",\"Web Fullscreen\":\"網頁全屏\",\"Exit Web Fullscreen\":\"退出網頁全屏\",\"Mini Player\":\"迷你播放器\",\"PIP Mode\":\"開啟畫中畫\",\"Exit PIP Mode\":\"退出畫中畫\",\"PIP Not Supported\":\"不支持畫中畫\",\"Fullscreen Not Supported\":\"不支持全屏\",\"Subtitle Offset\":\"字幕偏移\",\"Auto playback at\":\"已為您定位至\"}"); +},{}],"fS55m":[function(require,module,exports) { +module.exports = JSON.parse('{"Video Info":"\u7D71\u8A08\u8A0A\u606F","Close":"\u95DC\u9589","Video Load Failed":"\u8F09\u5165\u5931\u6557","Volume":"\u97F3\u91CF","Play":"\u64AD\u653E","Pause":"\u66AB\u505C","Rate":"\u901F\u5EA6","Mute":"\u975C\u97F3","Video Flip":"\u756B\u9762\u7FFB\u8F49","Horizontal":"\u6C34\u5E73","Vertical":"\u5782\u76F4","Reconnect":"\u91CD\u65B0\u9023\u63A5","Show Setting":"\u986F\u793A\u8BBE\u7F6E","Hide Setting":"\u96B1\u85CF\u8BBE\u7F6E","Screenshot":"\u622A\u5716","Play Speed":"\u64AD\u653E\u901F\u5EA6","Aspect Ratio":"\u756B\u9762\u6BD4\u4F8B","Default":"\u9ED8\u8A8D","Normal":"\u6B63\u5E38","Open":"\u6253\u958B","Switch Video":"\u5207\u63DB","Switch Subtitle":"\u5207\u63DB\u5B57\u5E55","Fullscreen":"\u5168\u5C4F","Exit Fullscreen":"\u9000\u51FA\u5168\u5C4F","Web Fullscreen":"\u7DB2\u9801\u5168\u5C4F","Exit Web Fullscreen":"\u9000\u51FA\u7DB2\u9801\u5168\u5C4F","Mini Player":"\u8FF7\u4F60\u64AD\u653E\u5668","PIP Mode":"\u958B\u555F\u756B\u4E2D\u756B","Exit PIP Mode":"\u9000\u51FA\u756B\u4E2D\u756B","PIP Not Supported":"\u4E0D\u652F\u6301\u756B\u4E2D\u756B","Fullscreen Not Supported":"\u4E0D\u652F\u6301\u5168\u5C4F","Subtitle Offset":"\u5B57\u5E55\u504F\u79FB","Last Seen":"\u4E0A\u6B21\u770B\u5230","Jump Play":"\u8DF3\u8F49\u64AD\u653E"}'); -},{}],"krPOm":[function(require,module,exports) { -module.exports = JSON.parse("{\"Video Info\":\"Informacje o wideo\",\"Close\":\"Zamknij\",\"Video Load Failed\":\"Błąd ładowania wideo\",\"Volume\":\"Głośność\",\"Play\":\"Odtwórz\",\"Pause\":\"Wstrzymaj\",\"Rate\":\"Oceń\",\"Mute\":\"Wycisz\",\"Video Flip\":\"Rotacja wideo\",\"Horizontal\":\"Pozioma\",\"Vertical\":\"Pionowa\",\"Reconnect\":\"Połącz ponownie\",\"Show Setting\":\"Pokaż ustawienia\",\"Hide Setting\":\"Ukryj ustawienia\",\"Screenshot\":\"Zrzut ekranu\",\"Play Speed\":\"Prędkość odtwarzania\",\"Aspect Ratio\":\"Współczynnik proporcji\",\"Default\":\"Domyślny\",\"Normal\":\"Normalny\",\"Open\":\"Otwórz\",\"Switch Video\":\"Przełącz wideo\",\"Switch Subtitle\":\"Przełącz napisy\",\"Fullscreen\":\"Pełny ekran\",\"Exit Fullscreen\":\"Zamknij pełny ekran\",\"Web Fullscreen\":\"Tryb pełnej strony\",\"Exit Web Fullscreen\":\"Zamknij tryb pełnej strony\",\"Mini Player\":\"Miniodtwarzacz\",\"PIP Mode\":\"Tryb PiP\",\"Exit PIP Mode\":\"Zamknij tryb PiP\",\"PIP Not Supported\":\"Tryb PiP nieobsługiwany\",\"Fullscreen Not Supported\":\"Pełny ekran nieobsługiwany\",\"Subtitle Offset\":\"Przesunięcie napisów\",\"Auto playback at\":\"Automatyczne odtwarzanie za\"}"); +},{}],"1JuQe":[function(require,module,exports) { +module.exports = JSON.parse('{"Video Info":"Informacje o wideo","Close":"Zamknij","Video Load Failed":"B\u0142\u0105d \u0142adowania wideo","Volume":"G\u0142o\u015Bno\u015B\u0107","Play":"Odtw\xf3rz","Pause":"Wstrzymaj","Rate":"Oce\u0144","Mute":"Wycisz","Video Flip":"Rotacja wideo","Horizontal":"Pozioma","Vertical":"Pionowa","Reconnect":"Po\u0142\u0105cz ponownie","Show Setting":"Poka\u017C ustawienia","Hide Setting":"Ukryj ustawienia","Screenshot":"Zrzut ekranu","Play Speed":"Pr\u0119dko\u015B\u0107 odtwarzania","Aspect Ratio":"Wsp\xf3\u0142czynnik proporcji","Default":"Domy\u015Blny","Normal":"Normalny","Open":"Otw\xf3rz","Switch Video":"Prze\u0142\u0105cz wideo","Switch Subtitle":"Prze\u0142\u0105cz napisy","Fullscreen":"Pe\u0142ny ekran","Exit Fullscreen":"Zamknij pe\u0142ny ekran","Web Fullscreen":"Tryb pe\u0142nej strony","Exit Web Fullscreen":"Zamknij tryb pe\u0142nej strony","Mini Player":"Miniodtwarzacz","PIP Mode":"Tryb PiP","Exit PIP Mode":"Zamknij tryb PiP","PIP Not Supported":"Tryb PiP nieobs\u0142ugiwany","Fullscreen Not Supported":"Pe\u0142ny ekran nieobs\u0142ugiwany","Subtitle Offset":"Przesuni\u0119cie napis\xf3w","Last Seen":"Ostatnio widziany","Jump Play":"Skocz do gry"}'); -},{}],"jNcs5":[function(require,module,exports) { -module.exports = JSON.parse("{\"Video Info\":\"Info o videu\",\"Close\":\"Zavřít\",\"Video Load Failed\":\"Nahrání videa selhalo\",\"Volume\":\"Hlasitost\",\"Play\":\"Přehrát\",\"Pause\":\"Pozastavit\",\"Rate\":\"Hodnocení\",\"Mute\":\"Ztlumit\",\"Video Flip\":\"Otočit video\",\"Horizontal\":\"Horizontálně\",\"Vertical\":\"Vertikálně\",\"Reconnect\":\"Opětovné připojení\",\"Show Setting\":\"Zobrazit nastavení\",\"Hide Setting\":\"Skrýt nastavení\",\"Screenshot\":\"Snímek obrazovky\",\"Play Speed\":\"Rychlost přehrávání\",\"Aspect Ratio\":\"Poměr stran\",\"Default\":\"Výchozí\",\"Normal\":\"Normální\",\"Open\":\"Otevřít\",\"Switch Video\":\"Přepnout video\",\"Switch Subtitle\":\"Přepnout titulky\",\"Fullscreen\":\"Celá obrazovka\",\"Exit Fullscreen\":\"Opustit režim celé obrazovky\",\"Web Fullscreen\":\"Celá stránka\",\"Exit Web Fullscreen\":\"Zavřít režim celé stránky\",\"Mini Player\":\"Mini přehrávač\",\"PIP Mode\":\"Režim PIP\",\"Exit PIP Mode\":\"Opustit režim PIP\",\"PIP Not Supported\":\"Režim PIP není podporován\",\"Fullscreen Not Supported\":\"Režim celé obrazovky není podporován\",\"Subtitle Offset\":\"Posun titulků\",\"Auto playback at\":\"Automatické přehrávání za\"}"); +},{}],"4wwD8":[function(require,module,exports) { +module.exports = JSON.parse('{"Video Info":"Info o videu","Close":"Zav\u0159\xedt","Video Load Failed":"Nahr\xe1n\xed videa selhalo","Volume":"Hlasitost","Play":"P\u0159ehr\xe1t","Pause":"Pozastavit","Rate":"Hodnocen\xed","Mute":"Ztlumit","Video Flip":"Oto\u010Dit video","Horizontal":"Horizont\xe1ln\u011B","Vertical":"Vertik\xe1ln\u011B","Reconnect":"Op\u011Btovn\xe9 p\u0159ipojen\xed","Show Setting":"Zobrazit nastaven\xed","Hide Setting":"Skr\xfdt nastaven\xed","Screenshot":"Sn\xedmek obrazovky","Play Speed":"Rychlost p\u0159ehr\xe1v\xe1n\xed","Aspect Ratio":"Pom\u011Br stran","Default":"V\xfdchoz\xed","Normal":"Norm\xe1ln\xed","Open":"Otev\u0159\xedt","Switch Video":"P\u0159epnout video","Switch Subtitle":"P\u0159epnout titulky","Fullscreen":"Cel\xe1 obrazovka","Exit Fullscreen":"Opustit re\u017Eim cel\xe9 obrazovky","Web Fullscreen":"Cel\xe1 str\xe1nka","Exit Web Fullscreen":"Zav\u0159\xedt re\u017Eim cel\xe9 str\xe1nky","Mini Player":"Mini p\u0159ehr\xe1va\u010D","PIP Mode":"Re\u017Eim PIP","Exit PIP Mode":"Opustit re\u017Eim PIP","PIP Not Supported":"Re\u017Eim PIP nen\xed podporov\xe1n","Fullscreen Not Supported":"Re\u017Eim cel\xe9 obrazovky nen\xed podporov\xe1n","Subtitle Offset":"Posun titulk\u016F","Last Seen":"Naposledy vid\u011Bn","Jump Play":"Hra na skok"}'); -},{}],"kmRM5":[function(require,module,exports) { +},{}],"35XKf":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _urlMix = require("./urlMix"); @@ -1471,79 +1410,79 @@ var _eventInit = require("./eventInit"); var _eventInitDefault = parcelHelpers.interopDefault(_eventInit); class Player { constructor(art){ - _urlMixDefault.default(art); - _attrMixDefault.default(art); - _playMixDefault.default(art); - _pauseMixDefault.default(art); - _toggleMixDefault.default(art); - _seekMixDefault.default(art); - _volumeMixDefault.default(art); - _currentTimeMixDefault.default(art); - _durationMixDefault.default(art); - _switchMixDefault.default(art); - _playbackRateMixDefault.default(art); - _aspectRatioMixDefault.default(art); - _screenshotMixDefault.default(art); - _fullscreenMixDefault.default(art); - _fullscreenWebMixDefault.default(art); - _pipMixDefault.default(art); - _loadedMixDefault.default(art); - _playedMixDefault.default(art); - _playingMixDefault.default(art); - _autoSizeMixDefault.default(art); - _rectMixDefault.default(art); - _flipMixDefault.default(art); - _miniMixDefault.default(art); - _loopMixDefault.default(art); - _posterMixDefault.default(art); - _autoHeightMixDefault.default(art); - _themeMixDefault.default(art); - _titleMixDefault.default(art); - _normalSizeMixDefault.default(art); - _subtitleOffsetMixDefault.default(art); - _eventInitDefault.default(art); - _optionInitDefault.default(art); + (0, _urlMixDefault.default)(art); + (0, _attrMixDefault.default)(art); + (0, _playMixDefault.default)(art); + (0, _pauseMixDefault.default)(art); + (0, _toggleMixDefault.default)(art); + (0, _seekMixDefault.default)(art); + (0, _volumeMixDefault.default)(art); + (0, _currentTimeMixDefault.default)(art); + (0, _durationMixDefault.default)(art); + (0, _switchMixDefault.default)(art); + (0, _playbackRateMixDefault.default)(art); + (0, _aspectRatioMixDefault.default)(art); + (0, _screenshotMixDefault.default)(art); + (0, _fullscreenMixDefault.default)(art); + (0, _fullscreenWebMixDefault.default)(art); + (0, _pipMixDefault.default)(art); + (0, _loadedMixDefault.default)(art); + (0, _playedMixDefault.default)(art); + (0, _playingMixDefault.default)(art); + (0, _autoSizeMixDefault.default)(art); + (0, _rectMixDefault.default)(art); + (0, _flipMixDefault.default)(art); + (0, _miniMixDefault.default)(art); + (0, _loopMixDefault.default)(art); + (0, _posterMixDefault.default)(art); + (0, _autoHeightMixDefault.default)(art); + (0, _themeMixDefault.default)(art); + (0, _titleMixDefault.default)(art); + (0, _normalSizeMixDefault.default)(art); + (0, _subtitleOffsetMixDefault.default)(art); + (0, _eventInitDefault.default)(art); + (0, _optionInitDefault.default)(art); } } exports.default = Player; -},{"./urlMix":"haOhz","./attrMix":"cSnpy","./playMix":"ftnB3","./pauseMix":"kDy9r","./toggleMix":"12BL6","./seekMix":"8x3vZ","./volumeMix":"lsF5V","./currentTimeMix":"75HaL","./durationMix":"5Ud6d","./switchMix":"emcjh","./playbackRateMix":"78DYM","./aspectRatioMix":"chjHL","./screenshotMix":"jDAYl","./fullscreenMix":"juJAD","./fullscreenWebMix":"5f725","./pipMix":"jWhCt","./loadedMix":"jhDPX","./playedMix":"3bU8P","./playingMix":"5Ctiw","./autoSizeMix":"6fRkJ","./rectMix":"lOJRK","./flipMix":"fSa7B","./miniMix":"fy4qC","./loopMix":"dvgcH","./posterMix":"lglHp","./autoHeightMix":"58Y02","./themeMix":"lga3g","./titleMix":"i382h","./normalSizeMix":"jW7b0","./subtitleOffsetMix":"4Ny6z","./optionInit":"vGIPW","./eventInit":"5D1O8","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"haOhz":[function(require,module,exports) { +},{"./urlMix":"aIS34","./attrMix":"jDj6f","./playMix":"agXpy","./pauseMix":"zMuGC","./toggleMix":"fvNrm","./seekMix":"3CiN1","./volumeMix":"1LKRL","./currentTimeMix":"bjUCm","./durationMix":"l8grT","./switchMix":"bIvi5","./playbackRateMix":"3EFen","./aspectRatioMix":"8ucW5","./screenshotMix":"12WvT","./fullscreenMix":"gNUzM","./fullscreenWebMix":"f2xmf","./pipMix":"i5i0P","./loadedMix":"8X9EY","./playedMix":"1ziBX","./playingMix":"9898W","./autoSizeMix":"b1yGg","./rectMix":"eKKgI","./flipMix":"ad3ay","./miniMix":"hUF3v","./loopMix":"gXFcr","./posterMix":"6j7ij","./autoHeightMix":"8Mzuu","./themeMix":"dv3lF","./titleMix":"5I0kK","./normalSizeMix":"9U4Nw","./subtitleOffsetMix":"lTNEf","./optionInit":"9Us4p","./eventInit":"4hZCW","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aIS34":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function urlMix(art) { const { option , template: { $video } , } = art; - _utils.def(art, 'url', { + (0, _utils.def)(art, "url", { get () { return $video.currentSrc; }, async set (url) { - const typeName = option.type || _utils.getExt(url); + const typeName = option.type || (0, _utils.getExt)(url); const typeCallback = option.customType[typeName]; if (typeName && typeCallback) { - await _utils.sleep(); + await (0, _utils.sleep)(); art.loading.show = true; typeCallback.call(art, $video, url, art); } else { - if (art.url && art.url !== url) art.once('video:canplay', ()=>{ - if (art.isReady) art.emit('restart'); + if (art.url && art.url !== url) art.once("video:canplay", ()=>{ + if (art.isReady) art.emit("restart"); }); $video.src = url; art.option.url = url; - art.emit('url', url); + art.emit("url", url); } } }); } exports.default = urlMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"cSnpy":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"jDj6f":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function attrMix(art) { const { template: { $video } , } = art; - _utils.def(art, 'attr', { + (0, _utils.def)(art, "attr", { value (key, value) { if (value === undefined) return $video[key]; $video[key] = value; @@ -1552,13 +1491,13 @@ function attrMix(art) { } exports.default = attrMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"ftnB3":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"agXpy":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function playMix(art) { const { i18n , notice , option , constructor: { instances } , template: { $video } , } = art; - _utils.def(art, 'play', { + (0, _utils.def)(art, "play", { value () { const promise = $video.play(); if (promise && promise.then) promise.then().catch((err)=>{ @@ -1569,37 +1508,37 @@ function playMix(art) { const instance = instances[index]; if (instance !== art) instance.pause(); } - notice.show = i18n.get('Play'); - art.emit('play'); + notice.show = i18n.get("Play"); + art.emit("play"); return promise; } }); } exports.default = playMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"kDy9r":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"zMuGC":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function pauseMix(art) { const { template: { $video } , i18n , notice , } = art; - _utils.def(art, 'pause', { + (0, _utils.def)(art, "pause", { value () { const result = $video.pause(); - notice.show = i18n.get('Pause'); - art.emit('pause'); + notice.show = i18n.get("Pause"); + art.emit("pause"); return result; } }); } exports.default = pauseMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"12BL6":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fvNrm":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function toggleMix(art) { - _utils.def(art, 'toggle', { + (0, _utils.def)(art, "toggle", { value () { if (art.playing) return art.pause(); else return art.play(); @@ -1608,25 +1547,25 @@ function toggleMix(art) { } exports.default = toggleMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"8x3vZ":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3CiN1":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function seekMix(art) { const { notice } = art; - _utils.def(art, 'seek', { + (0, _utils.def)(art, "seek", { set (time) { art.currentTime = time; - art.emit('seek', art.currentTime); - if (art.duration) notice.show = `${_utils.secondToTime(art.currentTime)} / ${_utils.secondToTime(art.duration)}`; + art.emit("seek", art.currentTime); + if (art.duration) notice.show = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`; } }); - _utils.def(art, 'forward', { + (0, _utils.def)(art, "forward", { set (time) { art.seek = art.currentTime + time; } }); - _utils.def(art, 'backward', { + (0, _utils.def)(art, "backward", { set (time) { art.seek = art.currentTime - time; } @@ -1634,57 +1573,54 @@ function seekMix(art) { } exports.default = seekMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"lsF5V":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1LKRL":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function volumeMix(art) { const { template: { $video } , i18n , notice , storage , } = art; - _utils.def(art, 'volume', { - get: ()=>$video.volume || 0 - , + (0, _utils.def)(art, "volume", { + get: ()=>$video.volume || 0, set: (percentage)=>{ - $video.volume = _utils.clamp(percentage, 0, 1); - notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`; - if ($video.volume !== 0) storage.set('volume', $video.volume); - art.emit('volume', $video.volume); + $video.volume = (0, _utils.clamp)(percentage, 0, 1); + notice.show = `${i18n.get("Volume")}: ${parseInt($video.volume * 100, 10)}`; + if ($video.volume !== 0) storage.set("volume", $video.volume); + art.emit("volume", $video.volume); } }); - _utils.def(art, 'muted', { - get: ()=>$video.muted - , + (0, _utils.def)(art, "muted", { + get: ()=>$video.muted, set: (muted)=>{ $video.muted = muted; - art.emit('volume', $video.volume); + art.emit("volume", $video.volume); } }); } exports.default = volumeMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"75HaL":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bjUCm":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function currentTimeMix(art) { const { $video } = art.template; - _utils.def(art, 'currentTime', { - get: ()=>$video.currentTime || 0 - , + (0, _utils.def)(art, "currentTime", { + get: ()=>$video.currentTime || 0, set: (time)=>{ time = parseFloat(time); if (Number.isNaN(time)) return; - $video.currentTime = _utils.clamp(time, 0, art.duration); + $video.currentTime = (0, _utils.clamp)(time, 0, art.duration); } }); } exports.default = currentTimeMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"5Ud6d":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"l8grT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function durationMix(art) { - _utils.def(art, 'duration', { + (0, _utils.def)(art, "duration", { get: ()=>{ const { duration } = art.template.$video; if (duration === Infinity) return 0; @@ -1694,7 +1630,7 @@ function durationMix(art) { } exports.default = durationMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"emcjh":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bIvi5":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -1707,26 +1643,26 @@ function switchMix(art) { art.pause(); URL.revokeObjectURL(art.url); art.url = url; - art.once('video:canplay', ()=>{ + art.once("video:canplay", ()=>{ art.playbackRate = false; art.aspectRatio = false; - art.flip = 'normal'; + art.flip = "normal"; art.autoSize = option.autoSize; art.currentTime = currentTime; - art.notice.show = ''; + art.notice.show = ""; if (playing) art.play(); - if (name) notice.show = `${i18n.get('Switch Video')}: ${name}`; - art.emit('switch', url); + if (name) notice.show = `${i18n.get("Switch Video")}: ${name}`; + art.emit("switch", url); resolve(url); }); }); } - _utils.def(art, 'switchQuality', { + (0, _utils.def)(art, "switchQuality", { value: (url, name)=>{ return switchUrl(url, name, art.currentTime); } }); - _utils.def(art, 'switchUrl', { + (0, _utils.def)(art, "switchUrl", { value: (url, name)=>{ return switchUrl(url, name, 0); } @@ -1734,13 +1670,13 @@ function switchMix(art) { } exports.default = switchMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"78DYM":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3EFen":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function playbackRateMix(art) { const { template: { $video } , i18n , notice , } = art; - _utils.def(art, 'playbackRate', { + (0, _utils.def)(art, "playbackRate", { get () { return $video.playbackRate; }, @@ -1759,66 +1695,66 @@ function playbackRateMix(art) { 3.0, 4.0 ]; - _utils.errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`); + (0, _utils.errorHandle)(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`); $video.playbackRate = rate; - notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`; - art.emit('playbackRate', rate); + notice.show = `${i18n.get("Rate")}: ${rate === 1.0 ? i18n.get("Normal") : `${rate}x`}`; + art.emit("playbackRate", rate); } else { art.playbackRate = 1; - art.emit('playbackRate'); + art.emit("playbackRate"); } } }); } exports.default = playbackRateMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"chjHL":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8ucW5":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function aspectRatioMix(art) { const { template: { $video , $player } , i18n , notice , } = art; - _utils.def(art, 'aspectRatio', { + (0, _utils.def)(art, "aspectRatio", { get () { - return $player.dataset.aspectRatio || 'default'; + return $player.dataset.aspectRatio || "default"; }, set (ratio) { - if (!ratio) ratio = 'default'; + if (!ratio) ratio = "default"; const ratioList = [ - 'default', - '4:3', - '16:9' + "default", + "4:3", + "16:9" ]; - _utils.errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`); - if (ratio === 'default') { - _utils.setStyle($video, 'width', null); - _utils.setStyle($video, 'height', null); - _utils.setStyle($video, 'padding', null); + (0, _utils.errorHandle)(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`); + if (ratio === "default") { + (0, _utils.setStyle)($video, "width", null); + (0, _utils.setStyle)($video, "height", null); + (0, _utils.setStyle)($video, "padding", null); delete $player.dataset.aspectRatio; } else { - const ratioArray = ratio.split(':').map(Number); + const ratioArray = ratio.split(":").map(Number); const { videoWidth , videoHeight } = $video; const { clientWidth , clientHeight } = $player; const videoRatio = videoWidth / videoHeight; const setupRatio = ratioArray[0] / ratioArray[1]; if (videoRatio > setupRatio) { const percentage = setupRatio * videoHeight / videoWidth; - _utils.setStyle($video, 'width', `${percentage * 100}%`); - _utils.setStyle($video, 'height', '100%'); - _utils.setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`); + (0, _utils.setStyle)($video, "width", `${percentage * 100}%`); + (0, _utils.setStyle)($video, "height", "100%"); + (0, _utils.setStyle)($video, "padding", `0 ${(clientWidth - clientWidth * percentage) / 2}px`); } else { const percentage = videoWidth / setupRatio / videoHeight; - _utils.setStyle($video, 'width', '100%'); - _utils.setStyle($video, 'height', `${percentage * 100}%`); - _utils.setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`); + (0, _utils.setStyle)($video, "width", "100%"); + (0, _utils.setStyle)($video, "height", `${percentage * 100}%`); + (0, _utils.setStyle)($video, "padding", `${(clientHeight - clientHeight * percentage) / 2}px 0`); } $player.dataset.aspectRatio = ratio; } - notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`; - art.emit('aspectRatio', ratio); + notice.show = `${i18n.get("Aspect Ratio")}: ${ratio === "default" ? i18n.get("Default") : ratio}`; + art.emit("aspectRatio", ratio); } }); - _utils.def(art, 'aspectRatioReset', { + (0, _utils.def)(art, "aspectRatioReset", { set (value) { if (value) { const { aspectRatio } = art; @@ -1829,32 +1765,32 @@ function aspectRatioMix(art) { } exports.default = aspectRatioMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"jDAYl":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"12WvT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function screenshotMix(art) { const { option , notice , template: { $video } , } = art; - const $canvas = document.createElement('canvas'); - _utils.def(art, 'getDataURL', { + const $canvas = document.createElement("canvas"); + (0, _utils.def)(art, "getDataURL", { value: ()=>new Promise((resolve, reject)=>{ try { $canvas.width = $video.videoWidth; $canvas.height = $video.videoHeight; - $canvas.getContext('2d').drawImage($video, 0, 0); - resolve($canvas.toDataURL('image/png')); + $canvas.getContext("2d").drawImage($video, 0, 0); + resolve($canvas.toDataURL("image/png")); } catch (err) { notice.show = err; reject(err); } }) }); - _utils.def(art, 'getBlobUrl', { + (0, _utils.def)(art, "getBlobUrl", { value: ()=>new Promise((resolve, reject)=>{ try { $canvas.width = $video.videoWidth; $canvas.height = $video.videoHeight; - $canvas.getContext('2d').drawImage($video, 0, 0); + $canvas.getContext("2d").drawImage($video, 0, 0); $canvas.toBlob((blob)=>{ resolve(URL.createObjectURL(blob)); }); @@ -1864,18 +1800,18 @@ function screenshotMix(art) { } }) }); - _utils.def(art, 'screenshot', { + (0, _utils.def)(art, "screenshot", { value: async ()=>{ const dataUri = await art.getDataURL(); - _utils.download(dataUri, `${option.title || 'artplayer'}_${_utils.secondToTime($video.currentTime)}.png`); - art.emit('screenshot', dataUri); + (0, _utils.download)(dataUri, `${option.title || "artplayer"}_${(0, _utils.secondToTime)($video.currentTime)}.png`); + art.emit("screenshot", dataUri); return dataUri; } }); } exports.default = screenshotMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"juJAD":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gNUzM":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _screenfull = require("../libs/screenfull"); @@ -1883,118 +1819,117 @@ var _screenfullDefault = parcelHelpers.interopDefault(_screenfull); var _utils = require("../utils"); function fullscreenMix(art1) { const { i18n , notice , template: { $video , $player } , } = art1; - const screenfull = _screenfullDefault.default(); + const screenfull = (0, _screenfullDefault.default)(); const nativeScreenfull = (art)=>{ - screenfull.on('change', ()=>art.emit('fullscreen', screenfull.isFullscreen) - ); - _utils.def(art, 'fullscreen', { + screenfull.on("change", ()=>art.emit("fullscreen", screenfull.isFullscreen)); + (0, _utils.def)(art, "fullscreen", { get () { return screenfull.isFullscreen; }, async set (value) { if (value) { - art.normalSize = 'fullscreen'; + art.normalSize = "fullscreen"; art.aspectRatioReset = true; art.autoSize = false; await screenfull.request($player); - _utils.addClass($player, 'art-fullscreen'); - art.emit('resize'); - art.emit('fullscreen', true); - notice.show = ''; + (0, _utils.addClass)($player, "art-fullscreen"); + art.emit("resize"); + art.emit("fullscreen", true); + notice.show = ""; } else { art.aspectRatioReset = true; art.autoSize = art.option.autoSize; await screenfull.exit(); - _utils.removeClass($player, 'art-fullscreen'); - art.emit('resize'); - art.emit('fullscreen'); - notice.show = ''; + (0, _utils.removeClass)($player, "art-fullscreen"); + art.emit("resize"); + art.emit("fullscreen"); + notice.show = ""; } } }); }; const webkitScreenfull = (art)=>{ - _utils.def(art, 'fullscreen', { + (0, _utils.def)(art, "fullscreen", { get () { return $video.webkitDisplayingFullscreen; }, set (value) { if (value) { - art.normalSize = 'fullscreen'; + art.normalSize = "fullscreen"; $video.webkitEnterFullscreen(); - art.emit('fullscreen', true); - notice.show = ''; + art.emit("fullscreen", true); + notice.show = ""; } else { $video.webkitExitFullscreen(); - art.emit('fullscreen'); - notice.show = ''; + art.emit("fullscreen"); + notice.show = ""; } } }); }; - art1.once('video:loadedmetadata', ()=>{ + art1.once("video:loadedmetadata", ()=>{ if (screenfull.isEnabled) nativeScreenfull(art1); else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) webkitScreenfull(art1); - else _utils.def(art1, 'fullscreen', { + else (0, _utils.def)(art1, "fullscreen", { get () { return false; }, set () { - notice.show = i18n.get('Fullscreen Not Supported'); + notice.show = i18n.get("Fullscreen Not Supported"); } }); // Asynchronous setting - _utils.def(art1, 'fullscreen', _utils.get(art1, 'fullscreen')); + (0, _utils.def)(art1, "fullscreen", (0, _utils.get)(art1, "fullscreen")); }); } exports.default = fullscreenMix; -},{"../libs/screenfull":"4XLC7","../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"4XLC7":[function(require,module,exports) { +},{"../libs/screenfull":"eQous","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"eQous":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function getScreenfull() { const methodMap = [ [ - 'requestFullscreen', - 'exitFullscreen', - 'fullscreenElement', - 'fullscreenEnabled', - 'fullscreenchange', - 'fullscreenerror', + "requestFullscreen", + "exitFullscreen", + "fullscreenElement", + "fullscreenEnabled", + "fullscreenchange", + "fullscreenerror", ], // New WebKit [ - 'webkitRequestFullscreen', - 'webkitExitFullscreen', - 'webkitFullscreenElement', - 'webkitFullscreenEnabled', - 'webkitfullscreenchange', - 'webkitfullscreenerror', + "webkitRequestFullscreen", + "webkitExitFullscreen", + "webkitFullscreenElement", + "webkitFullscreenEnabled", + "webkitfullscreenchange", + "webkitfullscreenerror", ], // Old WebKit [ - 'webkitRequestFullScreen', - 'webkitCancelFullScreen', - 'webkitCurrentFullScreenElement', - 'webkitCancelFullScreen', - 'webkitfullscreenchange', - 'webkitfullscreenerror', + "webkitRequestFullScreen", + "webkitCancelFullScreen", + "webkitCurrentFullScreenElement", + "webkitCancelFullScreen", + "webkitfullscreenchange", + "webkitfullscreenerror", ], [ - 'mozRequestFullScreen', - 'mozCancelFullScreen', - 'mozFullScreenElement', - 'mozFullScreenEnabled', - 'mozfullscreenchange', - 'mozfullscreenerror', + "mozRequestFullScreen", + "mozCancelFullScreen", + "mozFullScreenElement", + "mozFullScreenEnabled", + "mozfullscreenchange", + "mozfullscreenerror", ], [ - 'msRequestFullscreen', - 'msExitFullscreen', - 'msFullscreenElement', - 'msFullscreenEnabled', - 'MSFullscreenChange', - 'MSFullscreenError', + "msRequestFullscreen", + "msExitFullscreen", + "msFullscreenElement", + "msFullscreenEnabled", + "MSFullscreenChange", + "MSFullscreenError", ], ]; const nativeAPI = (()=>{ @@ -2018,10 +1953,10 @@ function getScreenfull() { request (element = document.documentElement, options) { return new Promise((resolve, reject)=>{ const onFullScreenEntered = ()=>{ - screenfull.off('change', onFullScreenEntered); + screenfull.off("change", onFullScreenEntered); resolve(); }; - screenfull.on('change', onFullScreenEntered); + screenfull.on("change", onFullScreenEntered); const returnPromise = element[nativeAPI.requestFullscreen](options); if (returnPromise instanceof Promise) returnPromise.then(onFullScreenEntered).catch(reject); }); @@ -2033,10 +1968,10 @@ function getScreenfull() { return; } const onFullScreenExit = ()=>{ - screenfull.off('change', onFullScreenExit); + screenfull.off("change", onFullScreenExit); resolve(); }; - screenfull.on('change', onFullScreenExit); + screenfull.on("change", onFullScreenExit); const returnPromise = document[nativeAPI.exitFullscreen](); if (returnPromise instanceof Promise) returnPromise.then(onFullScreenExit).catch(reject); }); @@ -2045,10 +1980,10 @@ function getScreenfull() { return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options); }, onchange (callback) { - screenfull.on('change', callback); + screenfull.on("change", callback); }, onerror (callback) { - screenfull.on('error', callback); + screenfull.on("error", callback); }, on (event, callback) { const eventName = eventNameMap[event]; @@ -2081,52 +2016,52 @@ function getScreenfull() { } exports.default = getScreenfull; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"5f725":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"f2xmf":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function fullscreenWebMix(art) { const { notice , template: { $player } , } = art; - _utils.def(art, 'fullscreenWeb', { + (0, _utils.def)(art, "fullscreenWeb", { get () { - return _utils.hasClass($player, 'art-fullscreen-web'); + return (0, _utils.hasClass)($player, "art-fullscreen-web"); }, set (value) { if (value) { - art.normalSize = 'fullscreenWeb'; - _utils.addClass($player, 'art-fullscreen-web'); + art.normalSize = "fullscreenWeb"; + (0, _utils.addClass)($player, "art-fullscreen-web"); art.aspectRatioReset = true; art.autoSize = false; - art.emit('resize'); - art.emit('fullscreenWeb', true); - notice.show = ''; + art.emit("resize"); + art.emit("fullscreenWeb", true); + notice.show = ""; } else { - _utils.removeClass($player, 'art-fullscreen-web'); + (0, _utils.removeClass)($player, "art-fullscreen-web"); art.aspectRatioReset = true; art.autoSize = art.option.autoSize; - art.emit('resize'); - art.emit('fullscreenWeb'); - notice.show = ''; + art.emit("resize"); + art.emit("fullscreenWeb"); + notice.show = ""; } } }); } exports.default = fullscreenWebMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"jWhCt":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"i5i0P":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function nativePip(art) { const { template: { $video } , events: { proxy } , notice , } = art; $video.disablePictureInPicture = false; - _utils.def(art, 'pip', { + (0, _utils.def)(art, "pip", { get () { return document.pictureInPictureElement; }, set (value) { if (value) { - art.normalSize = 'pip'; + art.normalSize = "pip"; $video.requestPictureInPicture().catch((err)=>{ notice.show = err; throw err; @@ -2137,28 +2072,28 @@ function nativePip(art) { }); } }); - proxy($video, 'enterpictureinpicture', ()=>{ - art.emit('pip', true); + proxy($video, "enterpictureinpicture", ()=>{ + art.emit("pip", true); }); - proxy($video, 'leavepictureinpicture', ()=>{ - art.emit('pip'); + proxy($video, "leavepictureinpicture", ()=>{ + art.emit("pip"); }); } function webkitPip(art) { const { $video } = art.template; - $video.webkitSetPresentationMode('inline'); - _utils.def(art, 'pip', { + $video.webkitSetPresentationMode("inline"); + (0, _utils.def)(art, "pip", { get () { - return $video.webkitPresentationMode === 'picture-in-picture'; + return $video.webkitPresentationMode === "picture-in-picture"; }, set (value) { if (value) { - art.normalSize = 'pip'; - $video.webkitSetPresentationMode('picture-in-picture'); - art.emit('pip', true); + art.normalSize = "pip"; + $video.webkitSetPresentationMode("picture-in-picture"); + art.emit("pip", true); } else { - $video.webkitSetPresentationMode('inline'); - art.emit('pip'); + $video.webkitSetPresentationMode("inline"); + art.emit("pip"); } } }); @@ -2167,64 +2102,64 @@ function pipMix(art) { const { i18n , notice , template: { $video } , } = art; if (document.pictureInPictureEnabled) nativePip(art); else if ($video.webkitSupportsPresentationMode) webkitPip(art); - else _utils.def(art, 'pip', { + else (0, _utils.def)(art, "pip", { get () { return false; }, set () { - notice.show = i18n.get('PIP Not Supported'); + notice.show = i18n.get("PIP Not Supported"); } }); } exports.default = pipMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"jhDPX":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8X9EY":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function seekMix(art) { const { $video } = art.template; - _utils.def(art, 'loaded', { + (0, _utils.def)(art, "loaded", { get: ()=>art.loadedTime / $video.duration }); - _utils.def(art, 'loadedTime', { + (0, _utils.def)(art, "loadedTime", { get: ()=>$video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0 }); } exports.default = seekMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"3bU8P":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1ziBX":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function playedMix(art) { - _utils.def(art, 'played', { + (0, _utils.def)(art, "played", { get: ()=>art.currentTime / art.duration }); } exports.default = playedMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"5Ctiw":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9898W":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function playingMix(art) { const { $video } = art.template; - _utils.def(art, 'playing', { + (0, _utils.def)(art, "playing", { get: ()=>!!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2) }); } exports.default = playingMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6fRkJ":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"b1yGg":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function resizeMix(art) { const { $container , $player , $video } = art.template; - _utils.def(art, 'autoSize', { + (0, _utils.def)(art, "autoSize", { get () { - return _utils.hasClass($container, 'art-auto-size'); + return (0, _utils.hasClass)($container, "art-auto-size"); }, set (value) { if (value) { @@ -2232,63 +2167,63 @@ function resizeMix(art) { const { width , height } = $container.getBoundingClientRect(); const videoRatio = videoWidth / videoHeight; const containerRatio = width / height; - _utils.addClass($container, 'art-auto-size'); + (0, _utils.addClass)($container, "art-auto-size"); if (containerRatio > videoRatio) { const percentage = height * videoRatio / width * 100; - _utils.setStyle($player, 'width', `${percentage}%`); - _utils.setStyle($player, 'height', '100%'); + (0, _utils.setStyle)($player, "width", `${percentage}%`); + (0, _utils.setStyle)($player, "height", "100%"); } else { const percentage = width / videoRatio / height * 100; - _utils.setStyle($player, 'width', '100%'); - _utils.setStyle($player, 'height', `${percentage}%`); + (0, _utils.setStyle)($player, "width", "100%"); + (0, _utils.setStyle)($player, "height", `${percentage}%`); } - art.emit('autoSize', { + art.emit("autoSize", { width: art.width, height: art.height }); } else { - _utils.removeClass($container, 'art-auto-size'); - _utils.setStyle($player, 'width', null); - _utils.setStyle($player, 'height', null); - art.emit('autoSize'); + (0, _utils.removeClass)($container, "art-auto-size"); + (0, _utils.setStyle)($player, "width", null); + (0, _utils.setStyle)($player, "height", null); + art.emit("autoSize"); } } }); } exports.default = resizeMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"lOJRK":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"eKKgI":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function rectMix(art) { - _utils.def(art, 'rect', { + (0, _utils.def)(art, "rect", { get: ()=>{ return art.template.$player.getBoundingClientRect(); } }); const keys = [ - 'bottom', - 'height', - 'left', - 'right', - 'top', - 'width' + "bottom", + "height", + "left", + "right", + "top", + "width" ]; for(let index = 0; index < keys.length; index++){ const key = keys[index]; - _utils.def(art, key, { + (0, _utils.def)(art, key, { get: ()=>{ return art.rect[key]; } }); } - _utils.def(art, 'x', { + (0, _utils.def)(art, "x", { get: ()=>{ return art.left + window.pageXOffset; } }); - _utils.def(art, 'y', { + (0, _utils.def)(art, "y", { get: ()=>{ return art.top + window.pageYOffset; } @@ -2296,35 +2231,35 @@ function rectMix(art) { } exports.default = rectMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"fSa7B":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"ad3ay":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function flipMix(art) { const { template: { $player } , i18n , notice , } = art; - _utils.def(art, 'flip', { + (0, _utils.def)(art, "flip", { get () { - return $player.dataset.flip || 'normal'; + return $player.dataset.flip || "normal"; }, set (flip) { - if (!flip) flip = 'normal'; + if (!flip) flip = "normal"; const flipList = [ - 'normal', - 'horizontal', - 'vertical' + "normal", + "horizontal", + "vertical" ]; - _utils.errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`); - if (flip === 'normal') delete $player.dataset.flip; + (0, _utils.errorHandle)(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`); + if (flip === "normal") delete $player.dataset.flip; else $player.dataset.flip = flip; const word = flip.replace(flip[0], flip[0].toUpperCase()); - notice.show = `${i18n.get('Video Flip')}: ${i18n.get(word)}`; - art.emit('flip', flip); + notice.show = `${i18n.get("Video Flip")}: ${i18n.get(word)}`; + art.emit("flip", flip); } }); } exports.default = flipMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"fy4qC":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"hUF3v":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -2335,110 +2270,109 @@ function miniMix(art) { let lastPageY = 0; let lastPlayerLeft = 0; let lastPlayerTop = 0; - proxy($miniHeader, 'mousedown', (event)=>{ + proxy($miniHeader, "mousedown", (event)=>{ isDroging = true; lastPageX = event.pageX; lastPageY = event.pageY; lastPlayerLeft = art.left; lastPlayerTop = art.top; }); - proxy(document, 'mousemove', (event)=>{ + proxy(document, "mousemove", (event)=>{ if (isDroging) { - _utils.addClass($player, 'art-is-dragging'); + (0, _utils.addClass)($player, "art-is-dragging"); const top = lastPlayerTop + event.pageY - lastPageY; const left = lastPlayerLeft + event.pageX - lastPageX; - _utils.setStyle($player, 'top', `${top}px`); - _utils.setStyle($player, 'left', `${left}px`); - storage.set('top', top); - storage.set('left', left); + (0, _utils.setStyle)($player, "top", `${top}px`); + (0, _utils.setStyle)($player, "left", `${left}px`); + storage.set("top", top); + storage.set("left", left); } }); - proxy(document, 'mouseup', ()=>{ + proxy(document, "mouseup", ()=>{ isDroging = false; - _utils.removeClass($player, 'art-is-dragging'); + (0, _utils.removeClass)($player, "art-is-dragging"); }); - proxy($miniClose, 'click', ()=>{ + proxy($miniClose, "click", ()=>{ art.mini = false; isDroging = false; - _utils.removeClass($player, 'art-is-dragging'); + (0, _utils.removeClass)($player, "art-is-dragging"); }); - _utils.append($miniTitle, option.title || i18n.get('Mini Player')); - _utils.def(art, 'mini', { + (0, _utils.append)($miniTitle, option.title || i18n.get("Mini Player")); + (0, _utils.def)(art, "mini", { get () { - return _utils.hasClass($player, 'art-mini'); + return (0, _utils.hasClass)($player, "art-mini"); }, set (value) { if (value) { - art.normalSize = 'mini'; + art.normalSize = "mini"; art.autoSize = false; - _utils.addClass($player, 'art-mini'); - const top = storage.get('top'); - const left = storage.get('left'); + (0, _utils.addClass)($player, "art-mini"); + const top = storage.get("top"); + const left = storage.get("left"); if (top && left) { - _utils.setStyle($player, 'top', `${top}px`); - _utils.setStyle($player, 'left', `${left}px`); - if (!_utils.isInViewport($miniHeader)) { - storage.del('top'); - storage.del('left'); + (0, _utils.setStyle)($player, "top", `${top}px`); + (0, _utils.setStyle)($player, "left", `${left}px`); + if (!(0, _utils.isInViewport)($miniHeader)) { + storage.del("top"); + storage.del("left"); art.mini = true; } } else { const top = window.innerHeight - art.height - 50; const left = window.innerWidth - art.width - 50; - storage.set('top', top); - storage.set('left', left); - _utils.setStyle($player, 'top', `${top}px`); - _utils.setStyle($player, 'left', `${left}px`); + storage.set("top", top); + storage.set("left", left); + (0, _utils.setStyle)($player, "top", `${top}px`); + (0, _utils.setStyle)($player, "left", `${left}px`); } art.aspectRatio = false; art.playbackRate = false; - art.notice.show = ''; - art.emit('mini', true); + art.notice.show = ""; + art.emit("mini", true); } else { - _utils.removeClass($player, 'art-mini'); - _utils.setStyle($player, 'top', null); - _utils.setStyle($player, 'left', null); + (0, _utils.removeClass)($player, "art-mini"); + (0, _utils.setStyle)($player, "top", null); + (0, _utils.setStyle)($player, "left", null); art.aspectRatio = false; art.playbackRate = false; art.autoSize = option.autoSize; - art.notice.show = ''; - art.emit('mini'); + art.notice.show = ""; + art.emit("mini"); } } }); } exports.default = miniMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"dvgcH":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gXFcr":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function loopMix(art) { let interval = []; - _utils.def(art, 'loop', { - get: ()=>interval - , + (0, _utils.def)(art, "loop", { + get: ()=>interval, set: (value)=>{ - if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') { - const start = _utils.clamp(value[0], 0, Math.min(value[1], art.duration)); - const end = _utils.clamp(value[1], start, art.duration); + if (Array.isArray(value) && typeof value[0] === "number" && typeof value[1] === "number") { + const start = (0, _utils.clamp)(value[0], 0, Math.min(value[1], art.duration)); + const end = (0, _utils.clamp)(value[1], start, art.duration); if (end - start >= 1) { interval = [ start, end ]; - art.emit('loop', interval); + art.emit("loop", interval); } else { interval = []; - art.emit('loop'); + art.emit("loop"); } } else { interval = []; - art.emit('loop'); + art.emit("loop"); } } }); - art.on('video:timeupdate', ()=>{ + art.on("video:timeupdate", ()=>{ if (interval.length) { if (art.currentTime < interval[0] || art.currentTime > interval[1]) art.seek = interval[0]; } @@ -2446,78 +2380,77 @@ function loopMix(art) { } exports.default = loopMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"lglHp":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"6j7ij":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function posterMix(art) { const { option , template: { $poster } , } = art; - _utils.def(art, 'poster', { - get: ()=>option.poster - , + (0, _utils.def)(art, "poster", { + get: ()=>option.poster, set (url) { option.poster = url; - _utils.setStyle($poster, 'backgroundImage', `url(${url})`); + (0, _utils.setStyle)($poster, "backgroundImage", `url(${url})`); } }); } exports.default = posterMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"58Y02":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8Mzuu":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function autoHeightMix(art) { const { option , template: { $container , $video } , } = art; const heightCache = $container.style.height; - _utils.def(art, 'autoHeight', { + (0, _utils.def)(art, "autoHeight", { get () { - return _utils.hasClass($container, 'art-auto-height'); + return (0, _utils.hasClass)($container, "art-auto-height"); }, set (value) { if (value) { const { clientWidth } = $container; const { videoHeight , videoWidth } = $video; const height = videoHeight * (clientWidth / videoWidth); - _utils.setStyle($container, 'height', height + 'px'); - _utils.addClass($container, 'art-auto-height'); + (0, _utils.setStyle)($container, "height", height + "px"); + (0, _utils.addClass)($container, "art-auto-height"); art.autoSize = option.autoSize; - art.emit('autoHeight', height); + art.emit("autoHeight", height); } else { - _utils.setStyle($container, 'height', heightCache); - _utils.removeClass($container, 'art-auto-height'); + (0, _utils.setStyle)($container, "height", heightCache); + (0, _utils.removeClass)($container, "art-auto-height"); art.autoSize = option.autoSize; - art.emit('autoHeight'); + art.emit("autoHeight"); } } }); } exports.default = autoHeightMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"lga3g":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dv3lF":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function themeMix(art) { const { option , template: { $player } , } = art; - _utils.def(art, 'theme', { + (0, _utils.def)(art, "theme", { get () { - return getComputedStyle($player).getPropertyValue('--theme'); + return getComputedStyle($player).getPropertyValue("--theme"); }, set (theme) { option.theme = theme; - $player.style.setProperty('--theme', theme); + $player.style.setProperty("--theme", theme); } }); } exports.default = themeMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"i382h":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5I0kK":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function titleMix(art) { - _utils.def(art, 'title', { + (0, _utils.def)(art, "title", { get () { return art.option.title; }, @@ -2528,25 +2461,23 @@ function titleMix(art) { } exports.default = titleMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"jW7b0":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9U4Nw":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function normalSizeMix(art) { const sizeProps = [ - 'mini', - 'pip', - 'fullscreen', - 'fullscreenWeb' + "mini", + "pip", + "fullscreen", + "fullscreenWeb" ]; - _utils.def(art, 'normalSize', { + (0, _utils.def)(art, "normalSize", { get () { - return sizeProps.every((name)=>!art[name] - ); + return sizeProps.every((name)=>!art[name]); }, set (name) { - sizeProps.filter((item)=>item !== name - ).forEach((item)=>{ + sizeProps.filter((item)=>item !== name).forEach((item)=>{ if (art[item]) art[item] = false; }); } @@ -2554,7 +2485,7 @@ function normalSizeMix(art) { } exports.default = normalSizeMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"4Ny6z":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"lTNEf":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -2563,10 +2494,10 @@ function subtitleOffsetMix(art) { const { notice , template , i18n } = art; let offsetCache = 0; let cuesCache = []; - art.on('subtitle:switch', ()=>{ + art.on("subtitle:switch", ()=>{ cuesCache = []; }); - _utils.def(art, 'subtitleOffset', { + (0, _utils.def)(art, "subtitleOffset", { get () { return offsetCache; }, @@ -2584,15 +2515,15 @@ function subtitleOffsetMix(art) { cue.endTime = clamp(cuesCache[index].endTime + offsetCache, 0, art.duration); } art.subtitle.update(); - notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`; - art.emit('subtitleOffset', value); - } else art.emit('subtitleOffset', 0); + notice.show = `${i18n.get("Subtitle Offset")}: ${value}s`; + art.emit("subtitleOffset", value); + } else art.emit("subtitleOffset", 0); } }); } exports.default = subtitleOffsetMix; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"vGIPW":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9Us4p":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -2602,21 +2533,21 @@ function attrInit(art) { art.attr(key, option.moreVideoAttr[key]); }); if (option.muted) art.muted = option.muted; - if (option.volume) $video.volume = _utils.clamp(option.volume, 0, 1); - const volumeStorage = storage.get('volume'); - if (typeof volumeStorage === 'number') $video.volume = _utils.clamp(volumeStorage, 0, 1); - if (option.poster) _utils.setStyle($poster, 'backgroundImage', `url(${option.poster})`); + if (option.volume) $video.volume = (0, _utils.clamp)(option.volume, 0, 1); + const volumeStorage = storage.get("volume"); + if (typeof volumeStorage === "number") $video.volume = (0, _utils.clamp)(volumeStorage, 0, 1); + if (option.poster) (0, _utils.setStyle)($poster, "backgroundImage", `url(${option.poster})`); if (option.autoplay) $video.autoplay = option.autoplay; if (option.playsInline) { $video.playsInline = true; - $video['webkit-playsinline'] = true; + $video["webkit-playsinline"] = true; } if (option.theme) art.theme = option.theme; - if (option.ads.length === 0) art.url = option.url; + art.url = option.url; } exports.default = attrInit; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"5D1O8":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"4hZCW":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _config = require("../config"); @@ -2625,21 +2556,21 @@ var _utils = require("../utils"); function eventInit(art) { const { i18n , notice , option , constructor , events: { proxy } , template: { $player , $video , $poster } , } = art; let reconnectTime = 0; - for(let index = 0; index < _configDefault.default.events.length; index++)proxy($video, _configDefault.default.events[index], (event)=>{ + for(let index = 0; index < (0, _configDefault.default).events.length; index++)proxy($video, (0, _configDefault.default).events[index], (event)=>{ art.emit(`video:${event.type}`, event); }); // art.on('video:abort', () => { // }); - art.on('video:canplay', ()=>{ + art.on("video:canplay", ()=>{ reconnectTime = 0; art.loading.show = false; }); - art.once('video:canplay', ()=>{ + art.once("video:canplay", ()=>{ art.loading.show = false; art.controls.show = true; art.mask.show = true; art.isReady = true; - art.emit('ready'); + art.emit("ready"); }); // art.on('video:canplaythrough', () => { // }); @@ -2647,7 +2578,7 @@ function eventInit(art) { // }); // art.on('video:emptied', () => { // }); - art.on('video:ended', ()=>{ + art.on("video:ended", ()=>{ if (option.loop) { art.seek = 0; art.play(); @@ -2658,57 +2589,57 @@ function eventInit(art) { art.mask.show = true; } }); - art.on('video:error', async ()=>{ + art.on("video:error", async ()=>{ if (reconnectTime < constructor.RECONNECT_TIME_MAX) { - await _utils.sleep(constructor.RECONNECT_SLEEP_TIME); + await (0, _utils.sleep)(constructor.RECONNECT_SLEEP_TIME); reconnectTime += 1; art.url = option.url; - notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`; - art.emit('error', reconnectTime); + notice.show = `${i18n.get("Reconnect")}: ${reconnectTime}`; + art.emit("error", reconnectTime); } else { art.mask.show = true; art.loading.show = false; art.controls.show = true; - _utils.addClass($player, 'art-error'); - await _utils.sleep(constructor.RECONNECT_SLEEP_TIME); - notice.show = i18n.get('Video Load Failed'); + (0, _utils.addClass)($player, "art-error"); + await (0, _utils.sleep)(constructor.RECONNECT_SLEEP_TIME); + notice.show = i18n.get("Video Load Failed"); art.destroy(false); } }); // art.on('video:loadeddata', () => { // }); - art.on('video:loadedmetadata', ()=>{ + art.on("video:loadedmetadata", ()=>{ art.autoSize = option.autoSize; - if (_utils.isMobile) { + if (0, _utils.isMobile) { art.loading.show = false; art.controls.show = true; art.mask.show = true; } }); - art.on('video:loadstart', ()=>{ + art.on("video:loadstart", ()=>{ art.loading.show = true; art.mask.show = false; art.controls.show = true; }); - art.on('video:pause', ()=>{ + art.on("video:pause", ()=>{ art.controls.show = true; art.mask.show = true; }); - art.on('video:play', ()=>{ + art.on("video:play", ()=>{ art.mask.show = false; - _utils.setStyle($poster, 'display', 'none'); + (0, _utils.setStyle)($poster, "display", "none"); }); - art.on('video:playing', ()=>{ + art.on("video:playing", ()=>{ art.mask.show = false; }); // art.on('video:progress', () => { // }); // art.on('video:ratechange', () => { // }); - art.on('video:seeked', ()=>{ + art.on("video:seeked", ()=>{ art.loading.show = false; }); - art.on('video:seeking', ()=>{ + art.on("video:seeking", ()=>{ art.loading.show = true; art.mask.show = false; }); @@ -2716,19 +2647,19 @@ function eventInit(art) { // }); // art.on('video:suspend', () => { // }); - art.on('video:timeupdate', ()=>{ + art.on("video:timeupdate", ()=>{ art.mask.show = false; }); // art.on('video:volumechange', () => { // }); - art.on('video:waiting', ()=>{ + art.on("video:waiting", ()=>{ art.loading.show = true; art.mask.show = false; }); } exports.default = eventInit; -},{"../config":"1hSww","../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"nK2ZQ":[function(require,module,exports) { +},{"../config":"2ZnKD","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"faO0X":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -2758,123 +2689,123 @@ var _quality = require("./quality"); var _qualityDefault = parcelHelpers.interopDefault(_quality); var _loop = require("./loop"); var _loopDefault = parcelHelpers.interopDefault(_loop); -class Control extends _componentDefault.default { +class Control extends (0, _componentDefault.default) { constructor(art){ super(art); - this.name = 'control'; + this.name = "control"; const { constructor , events: { proxy } , template: { $player } , } = art; let activeTime = Date.now(); proxy($player, [ - 'click', - 'mousemove', - 'touchstart', - 'touchmove' + "click", + "mousemove", + "touchstart", + "touchmove" ], ()=>{ this.show = true; - _utils.removeClass($player, 'art-hide-cursor'); - _utils.addClass($player, 'art-hover'); + (0, _utils.removeClass)($player, "art-hide-cursor"); + (0, _utils.addClass)($player, "art-hover"); activeTime = Date.now(); }); - art.on('video:timeupdate', ()=>{ + art.on("video:timeupdate", ()=>{ if (!art.isInput && art.playing && this.show && Date.now() - activeTime >= constructor.CONTROL_HIDE_TIME) { this.show = false; - _utils.addClass($player, 'art-hide-cursor'); - _utils.removeClass($player, 'art-hover'); + (0, _utils.addClass)($player, "art-hide-cursor"); + (0, _utils.removeClass)($player, "art-hover"); } }); this.init(); } init() { const { option } = this.art; - this.add(_progressDefault.default({ - name: 'progress', + this.add((0, _progressDefault.default)({ + name: "progress", disable: option.isLive, - position: 'top', + position: "top", index: 10 })); - this.add(_thumbnailsDefault.default({ - name: 'thumbnails', - disable: !option.thumbnails.url || option.isLive || _utils.isMobile, - position: 'top', + this.add((0, _thumbnailsDefault.default)({ + name: "thumbnails", + disable: !option.thumbnails.url || option.isLive || (0, _utils.isMobile), + position: "top", index: 20 })); - this.add(_loopDefault.default({ - name: 'loop', + this.add((0, _loopDefault.default)({ + name: "loop", disable: false, - position: 'top', + position: "top", index: 30 })); - this.add(_playAndPauseDefault.default({ - name: 'playAndPause', + this.add((0, _playAndPauseDefault.default)({ + name: "playAndPause", disable: false, - position: 'left', + position: "left", index: 10 })); - this.add(_volumeDefault.default({ - name: 'volume', + this.add((0, _volumeDefault.default)({ + name: "volume", disable: false, - position: 'left', + position: "left", index: 20 })); - this.add(_timeDefault.default({ - name: 'time', + this.add((0, _timeDefault.default)({ + name: "time", disable: option.isLive, - position: 'left', + position: "left", index: 30 })); - this.add(_qualityDefault.default({ - name: 'quality', + this.add((0, _qualityDefault.default)({ + name: "quality", disable: option.quality.length === 0, - position: 'right', + position: "right", index: 10 })); - this.add(_screenshotDefault.default({ - name: 'screenshot', - disable: !option.screenshot || _utils.isMobile, - position: 'right', + this.add((0, _screenshotDefault.default)({ + name: "screenshot", + disable: !option.screenshot || (0, _utils.isMobile), + position: "right", index: 20 })); - this.add(_settingDefault.default({ - name: 'setting', + this.add((0, _settingDefault.default)({ + name: "setting", disable: !option.setting, - position: 'right', + position: "right", index: 30 })); - this.add(_pipDefault.default({ - name: 'pip', + this.add((0, _pipDefault.default)({ + name: "pip", disable: !option.pip, - position: 'right', + position: "right", index: 40 })); - this.add(_fullscreenWebDefault.default({ - name: 'fullscreenWeb', + this.add((0, _fullscreenWebDefault.default)({ + name: "fullscreenWeb", disable: !option.fullscreenWeb, - position: 'right', + position: "right", index: 50 })); - this.add(_fullscreenDefault.default({ - name: 'fullscreen', + this.add((0, _fullscreenDefault.default)({ + name: "fullscreen", disable: !option.fullscreen, - position: 'right', + position: "right", index: 60 })); for(let index = 0; index < option.controls.length; index++)this.add(option.controls[index]); } add(getOption) { - const option = typeof getOption === 'function' ? getOption(this.art) : getOption; + const option = typeof getOption === "function" ? getOption(this.art) : getOption; const { $progress , $controlsLeft , $controlsRight } = this.art.template; switch(option.position){ - case 'top': + case "top": this.$parent = $progress; break; - case 'left': + case "left": this.$parent = $controlsLeft; break; - case 'right': + case "right": this.$parent = $controlsRight; break; default: - _utils.errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`); + (0, _utils.errorHandle)(false, `Control option.position must one of 'top', 'left', 'right'`); break; } super.add(option); @@ -2882,7 +2813,7 @@ class Control extends _componentDefault.default { } exports.default = Control; -},{"../utils":"euhMG","../utils/component":"1UWqI","./fullscreen":"d7VBA","./fullscreenWeb":"iE4ux","./pip":"03ERY","./playAndPause":"2tuF0","./progress":"afGEi","./time":"e6eX5","./volume":"ezhk3","./setting":"3Vg4s","./thumbnails":"8AAYm","./screenshot":"lcqMk","./quality":"349DU","./loop":"8hCXR","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"1UWqI":[function(require,module,exports) { +},{"../utils":"jmgNb","../utils/component":"bgug2","./fullscreen":"bHDMy","./fullscreenWeb":"8HUSd","./pip":"5nd2H","./playAndPause":"gt2F0","./progress":"aHyb0","./time":"hL9ry","./volume":"3G9Wa","./setting":"jQ9Bw","./thumbnails":"8HBQN","./screenshot":"aA6wc","./quality":"5Zppa","./loop":"3bPO6","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bgug2":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _dom = require("./dom"); @@ -2898,182 +2829,176 @@ class Component { this.add = this.add.bind(this); } get show() { - return _dom.hasClass(this.art.template.$player, `art-${this.name}-show`); + return (0, _dom.hasClass)(this.art.template.$player, `art-${this.name}-show`); } set show(value) { const { $player } = this.art.template; const className = `art-${this.name}-show`; - if (value) _dom.addClass($player, className); - else _dom.removeClass($player, className); + if (value) (0, _dom.addClass)($player, className); + else (0, _dom.removeClass)($player, className); this.art.emit(this.name, value); } set toggle(value) { if (value) this.show = !this.show; } add(getOption) { - const option = typeof getOption === 'function' ? getOption(this.art) : getOption; - option.html = option.html || ''; - _optionValidatorDefault.default(option, _scheme.ComponentOption); + const option = typeof getOption === "function" ? getOption(this.art) : getOption; + option.html = option.html || ""; + (0, _optionValidatorDefault.default)(option, (0, _scheme.ComponentOption)); if (!this.$parent || !this.name || option.disable) return; const name = option.name || `${this.name}${this.id}`; - _error.errorHandle(!_property.has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`); + (0, _error.errorHandle)(!(0, _property.has)(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`); this.id += 1; - const $ref = document.createElement('div'); - _dom.addClass($ref, `art-${this.name}`); - _dom.addClass($ref, `art-${this.name}-${name}`); + const $ref = document.createElement("div"); + (0, _dom.addClass)($ref, `art-${this.name}`); + (0, _dom.addClass)($ref, `art-${this.name}-${name}`); const childs = Array.from(this.$parent.children); $ref.dataset.index = option.index || this.id; - const nextChild = childs.find((item)=>Number(item.dataset.index) >= Number($ref.dataset.index) - ); - if (nextChild) nextChild.insertAdjacentElement('beforebegin', $ref); - else _dom.append(this.$parent, $ref); - if (option.html) _dom.append($ref, option.html); - if (option.style) _dom.setStyles($ref, option.style); - if (option.tooltip) _dom.tooltip($ref, option.tooltip); - if (option.click) this.art.events.proxy($ref, 'click', (event)=>{ + const nextChild = childs.find((item)=>Number(item.dataset.index) >= Number($ref.dataset.index)); + if (nextChild) nextChild.insertAdjacentElement("beforebegin", $ref); + else (0, _dom.append)(this.$parent, $ref); + if (option.html) (0, _dom.append)($ref, option.html); + if (option.style) (0, _dom.setStyles)($ref, option.style); + if (option.tooltip) (0, _dom.tooltip)($ref, option.tooltip); + if (option.click) this.art.events.proxy($ref, "click", (event)=>{ event.preventDefault(); option.click.call(this.art, this, event); }); if (option.selector && [ - 'left', - 'right' + "left", + "right" ].includes(option.position)) this.selector(option, $ref); if (option.mounted) option.mounted.call(this.art, $ref); - if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) _dom.addClass($ref, 'art-control-onlyText'); - _property.def(this, name, { + if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) (0, _dom.addClass)($ref, "art-control-onlyText"); + (0, _property.def)(this, name, { value: $ref }); return $ref; } selector(option, $ref) { const { hover , proxy } = this.art.events; - _dom.addClass($ref, 'art-control-selector'); - const $value = document.createElement('div'); - _dom.addClass($value, 'art-selector-value'); - _dom.append($value, option.html); - $ref.innerText = ''; - _dom.append($ref, $value); - const list = option.selector.map((item, index)=>`
${item.html}
` - ).join(''); - const $list = document.createElement('div'); - _dom.addClass($list, 'art-selector-list'); - _dom.append($list, list); - _dom.append($ref, $list); + (0, _dom.addClass)($ref, "art-control-selector"); + const $value = document.createElement("div"); + (0, _dom.addClass)($value, "art-selector-value"); + (0, _dom.append)($value, option.html); + $ref.innerText = ""; + (0, _dom.append)($ref, $value); + const list = option.selector.map((item, index)=>`
${item.html}
`).join(""); + const $list = document.createElement("div"); + (0, _dom.addClass)($list, "art-selector-list"); + (0, _dom.append)($list, list); + (0, _dom.append)($ref, $list); const setLeft = ()=>{ - const left = _dom.getStyle($ref, 'width') / 2 - _dom.getStyle($list, 'width') / 2; + const left = (0, _dom.getStyle)($ref, "width") / 2 - (0, _dom.getStyle)($list, "width") / 2; $list.style.left = `${left}px`; }; hover($ref, setLeft); - proxy($list, 'click', async (event)=>{ + proxy($list, "click", async (event)=>{ const path = event.composedPath() || []; - const $item = path.find((item)=>_dom.hasClass(item, 'art-selector-item') - ); + const $item = path.find((item)=>(0, _dom.hasClass)(item, "art-selector-item")); if (!$item) return; - _dom.inverseClass($item, 'art-current'); + (0, _dom.inverseClass)($item, "art-current"); const index = Number($item.dataset.index); const find = option.selector[index] || {}; $value.innerText = $item.innerText; if (option.onSelect) { const result = await option.onSelect.call(this.art, find, $item, event); - if (typeof result === 'string' || typeof result === 'number') $value.innerHTML = result; + if (typeof result === "string" || typeof result === "number") $value.innerHTML = result; } setLeft(); - this.art.emit('selector', find, $item); + this.art.emit("selector", find, $item); }); } } exports.default = Component; -},{"./dom":"iWXW0","option-validator":"2tbdu","../scheme":"jVxq1","./property":"amiWs","./error":"kCmly","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"d7VBA":[function(require,module,exports) { +},{"./dom":"dNynC","option-validator":"2tbdu","../scheme":"gL38d","./property":"91nLd","./error":"622b3","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bHDMy":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function fullscreen(option) { return (art)=>({ ...option, - tooltip: art.i18n.get('Fullscreen'), + tooltip: art.i18n.get("Fullscreen"), mounted: ($control)=>{ const { events: { proxy } , icons , i18n , } = art; - const $fullscreenOn = _utils.append($control, icons.fullscreenOn); - const $fullscreenOff = _utils.append($control, icons.fullscreenOff); - _utils.setStyle($fullscreenOff, 'display', 'none'); - proxy($control, 'click', ()=>{ + const $fullscreenOn = (0, _utils.append)($control, icons.fullscreenOn); + const $fullscreenOff = (0, _utils.append)($control, icons.fullscreenOff); + (0, _utils.setStyle)($fullscreenOff, "display", "none"); + proxy($control, "click", ()=>{ art.fullscreen = !art.fullscreen; }); - art.on('fullscreen', (value)=>{ + art.on("fullscreen", (value)=>{ if (value) { - _utils.tooltip($control, i18n.get('Exit Fullscreen')); - _utils.setStyle($fullscreenOn, 'display', 'none'); - _utils.setStyle($fullscreenOff, 'display', 'inline-flex'); + (0, _utils.tooltip)($control, i18n.get("Exit Fullscreen")); + (0, _utils.setStyle)($fullscreenOn, "display", "none"); + (0, _utils.setStyle)($fullscreenOff, "display", "inline-flex"); } else { - _utils.tooltip($control, i18n.get('Fullscreen')); - _utils.setStyle($fullscreenOn, 'display', 'inline-flex'); - _utils.setStyle($fullscreenOff, 'display', 'none'); + (0, _utils.tooltip)($control, i18n.get("Fullscreen")); + (0, _utils.setStyle)($fullscreenOn, "display", "inline-flex"); + (0, _utils.setStyle)($fullscreenOff, "display", "none"); } }); } - }) - ; + }); } exports.default = fullscreen; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"iE4ux":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8HUSd":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function fullscreenWeb(option) { return (art)=>({ ...option, - tooltip: art.i18n.get('Web Fullscreen'), + tooltip: art.i18n.get("Web Fullscreen"), mounted: ($control)=>{ const { events: { proxy } , icons , i18n , } = art; - const $fullscreenWebOn = _utils.append($control, icons.fullscreenWebOn); - const $fullscreenWebOff = _utils.append($control, icons.fullscreenWebOff); - _utils.setStyle($fullscreenWebOff, 'display', 'none'); - proxy($control, 'click', ()=>{ + const $fullscreenWebOn = (0, _utils.append)($control, icons.fullscreenWebOn); + const $fullscreenWebOff = (0, _utils.append)($control, icons.fullscreenWebOff); + (0, _utils.setStyle)($fullscreenWebOff, "display", "none"); + proxy($control, "click", ()=>{ art.fullscreenWeb = !art.fullscreenWeb; }); - art.on('fullscreenWeb', (value)=>{ + art.on("fullscreenWeb", (value)=>{ if (value) { - _utils.tooltip($control, i18n.get('Exit Web Fullscreen')); - _utils.setStyle($fullscreenWebOn, 'display', 'none'); - _utils.setStyle($fullscreenWebOff, 'display', 'inline-flex'); + (0, _utils.tooltip)($control, i18n.get("Exit Web Fullscreen")); + (0, _utils.setStyle)($fullscreenWebOn, "display", "none"); + (0, _utils.setStyle)($fullscreenWebOff, "display", "inline-flex"); } else { - _utils.tooltip($control, i18n.get('Web Fullscreen')); - _utils.setStyle($fullscreenWebOn, 'display', 'inline-flex'); - _utils.setStyle($fullscreenWebOff, 'display', 'none'); + (0, _utils.tooltip)($control, i18n.get("Web Fullscreen")); + (0, _utils.setStyle)($fullscreenWebOn, "display", "inline-flex"); + (0, _utils.setStyle)($fullscreenWebOff, "display", "none"); } }); } - }) - ; + }); } exports.default = fullscreenWeb; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"03ERY":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5nd2H":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function pip(option) { return (art)=>({ ...option, - tooltip: art.i18n.get('PIP Mode'), + tooltip: art.i18n.get("PIP Mode"), mounted: ($control)=>{ const { events: { proxy } , icons , i18n , } = art; - _utils.append($control, icons.pip); - proxy($control, 'click', ()=>{ + (0, _utils.append)($control, icons.pip); + proxy($control, "click", ()=>{ art.pip = !art.pip; }); - art.on('pip', (value)=>{ - _utils.tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode')); + art.on("pip", (value)=>{ + (0, _utils.tooltip)($control, i18n.get(value ? "Exit PIP Mode" : "PIP Mode")); }); } - }) - ; + }); } exports.default = pip; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"2tuF0":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gt2F0":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3082,52 +3007,50 @@ function playAndPause(option) { ...option, mounted: ($control)=>{ const { events: { proxy } , icons , i18n , } = art; - const $play = _utils.append($control, icons.play); - const $pause = _utils.append($control, icons.pause); - _utils.tooltip($play, i18n.get('Play')); - _utils.tooltip($pause, i18n.get('Pause')); - proxy($play, 'click', ()=>{ + const $play = (0, _utils.append)($control, icons.play); + const $pause = (0, _utils.append)($control, icons.pause); + (0, _utils.tooltip)($play, i18n.get("Play")); + (0, _utils.tooltip)($pause, i18n.get("Pause")); + proxy($play, "click", ()=>{ art.play(); }); - proxy($pause, 'click', ()=>{ + proxy($pause, "click", ()=>{ art.pause(); }); function showPlay() { - _utils.setStyle($play, 'display', 'flex'); - _utils.setStyle($pause, 'display', 'none'); + (0, _utils.setStyle)($play, "display", "flex"); + (0, _utils.setStyle)($pause, "display", "none"); } function showPause() { - _utils.setStyle($play, 'display', 'none'); - _utils.setStyle($pause, 'display', 'flex'); + (0, _utils.setStyle)($play, "display", "none"); + (0, _utils.setStyle)($pause, "display", "flex"); } if (art.playing) showPause(); else showPlay(); - art.on('video:playing', ()=>{ + art.on("video:playing", ()=>{ showPause(); }); - art.on('video:pause', ()=>{ + art.on("video:pause", ()=>{ showPlay(); }); } - }) - ; + }); } exports.default = playAndPause; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"afGEi":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aHyb0":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "getPosFromEvent", ()=>getPosFromEvent -); +parcelHelpers.export(exports, "getPosFromEvent", ()=>getPosFromEvent); var _utils = require("../utils"); function getPosFromEvent(art, event) { const { $progress } = art.template; const { left } = $progress.getBoundingClientRect(); const eventLeft = event.pageX; - const width = _utils.clamp(eventLeft - left, 0, $progress.clientWidth); + const width = (0, _utils.clamp)(eventLeft - left, 0, $progress.clientWidth); const second = width / $progress.clientWidth * art.duration; - const time = _utils.secondToTime(second); - const percentage = _utils.clamp(width / $progress.clientWidth, 0, 1); + const time = (0, _utils.secondToTime)(second); + const percentage = (0, _utils.clamp)(width / $progress.clientWidth, 0, 1); return { second, time, @@ -3151,24 +3074,24 @@ function progress(options) { `, mounted: ($control)=>{ let isDroging = false; - const $loaded = _utils.query('.art-progress-loaded', $control); - const $played = _utils.query('.art-progress-played', $control); - const $highlight = _utils.query('.art-progress-highlight', $control); - const $indicator = _utils.query('.art-progress-indicator', $control); - const $tip = _utils.query('.art-progress-tip', $control); - _utils.setStyle($played, 'backgroundColor', 'var(--theme)'); + const $loaded = (0, _utils.query)(".art-progress-loaded", $control); + const $played = (0, _utils.query)(".art-progress-played", $control); + const $highlight = (0, _utils.query)(".art-progress-highlight", $control); + const $indicator = (0, _utils.query)(".art-progress-indicator", $control); + const $tip = (0, _utils.query)(".art-progress-tip", $control); + (0, _utils.setStyle)($played, "backgroundColor", "var(--theme)"); let indicatorSize = art.constructor.INDICATOR_SIZE; if (icons.indicator) { indicatorSize = art.constructor.INDICATOR_SIZE_ICON; - _utils.append($indicator, icons.indicator); - } else _utils.setStyles($indicator, { - backgroundColor: 'var(--theme)' + (0, _utils.append)($indicator, icons.indicator); + } else (0, _utils.setStyles)($indicator, { + backgroundColor: "var(--theme)" }); - if (_utils.isMobile) { + if (0, _utils.isMobile) { indicatorSize = art.constructor.INDICATOR_SIZE_MOBILE; if (icons.indicator) indicatorSize = art.constructor.INDICATOR_SIZE_MOBILE_ICON; } - _utils.setStyles($indicator, { + (0, _utils.setStyles)($indicator, { left: `-${indicatorSize / 2}px`, width: `${indicatorSize}px`, height: `${indicatorSize}px` @@ -3178,72 +3101,72 @@ function progress(options) { const { text } = event.target.dataset; $tip.innerHTML = text; const tipWidth = $tip.clientWidth; - if (width <= tipWidth / 2) _utils.setStyle($tip, 'left', 0); - else if (width > $control.clientWidth - tipWidth / 2) _utils.setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`); - else _utils.setStyle($tip, 'left', `${width - tipWidth / 2}px`); + if (width <= tipWidth / 2) (0, _utils.setStyle)($tip, "left", 0); + else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, "left", `${$control.clientWidth - tipWidth}px`); + else (0, _utils.setStyle)($tip, "left", `${width - tipWidth / 2}px`); } function showTime(event) { const { width , time } = getPosFromEvent(art, event); $tip.innerHTML = time; const tipWidth = $tip.clientWidth; - if (width <= tipWidth / 2) _utils.setStyle($tip, 'left', 0); - else if (width > $control.clientWidth - tipWidth / 2) _utils.setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`); - else _utils.setStyle($tip, 'left', `${width - tipWidth / 2}px`); + if (width <= tipWidth / 2) (0, _utils.setStyle)($tip, "left", 0); + else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, "left", `${$control.clientWidth - tipWidth}px`); + else (0, _utils.setStyle)($tip, "left", `${width - tipWidth / 2}px`); } function setBar(type, percentage) { - if (type === 'loaded') _utils.setStyle($loaded, 'width', `${percentage * 100}%`); - if (type === 'played') { - _utils.setStyle($played, 'width', `${percentage * 100}%`); - _utils.setStyle($indicator, 'left', `calc(${percentage * 100}% - ${indicatorSize / 2}px)`); + if (type === "loaded") (0, _utils.setStyle)($loaded, "width", `${percentage * 100}%`); + if (type === "played") { + (0, _utils.setStyle)($played, "width", `${percentage * 100}%`); + (0, _utils.setStyle)($indicator, "left", `calc(${percentage * 100}% - ${indicatorSize / 2}px)`); } } - art.on('video:loadedmetadata', ()=>{ + art.on("video:loadedmetadata", ()=>{ for(let index = 0; index < option.highlight.length; index++){ const item = option.highlight[index]; - const left = _utils.clamp(item.time, 0, art.duration) / art.duration * 100; - _utils.append($highlight, ``); + const left = (0, _utils.clamp)(item.time, 0, art.duration) / art.duration * 100; + (0, _utils.append)($highlight, ``); } }); - setBar('loaded', art.loaded); - art.on('setBar', (type, percentage)=>{ + setBar("loaded", art.loaded); + art.on("setBar", (type, percentage)=>{ setBar(type, percentage); }); - art.on('video:progress', ()=>{ - setBar('loaded', art.loaded); + art.on("video:progress", ()=>{ + setBar("loaded", art.loaded); }); - art.on('video:timeupdate', ()=>{ - setBar('played', art.played); + art.on("video:timeupdate", ()=>{ + setBar("played", art.played); }); - art.on('video:ended', ()=>{ - setBar('played', 1); + art.on("video:ended", ()=>{ + setBar("played", 1); }); - if (!_utils.isMobile) { - proxy($control, 'click', (event)=>{ + if (!(0, _utils.isMobile)) { + proxy($control, "click", (event)=>{ if (event.target !== $indicator) { const { second , percentage } = getPosFromEvent(art, event); - setBar('played', percentage); + setBar("played", percentage); art.seek = second; } }); - proxy($control, 'mousemove', (event)=>{ - _utils.setStyle($tip, 'display', 'block'); - if (_utils.includeFromEvent(event, $highlight)) showHighlight(event); + proxy($control, "mousemove", (event)=>{ + (0, _utils.setStyle)($tip, "display", "block"); + if ((0, _utils.includeFromEvent)(event, $highlight)) showHighlight(event); else showTime(event); }); - proxy($control, 'mouseout', ()=>{ - _utils.setStyle($tip, 'display', 'none'); + proxy($control, "mouseout", ()=>{ + (0, _utils.setStyle)($tip, "display", "none"); }); - proxy($indicator, 'mousedown', ()=>{ + proxy($indicator, "mousedown", ()=>{ isDroging = true; }); - proxy(document, 'mousemove', (event)=>{ + proxy(document, "mousemove", (event)=>{ if (isDroging) { const { second , percentage } = getPosFromEvent(art, event); - setBar('played', percentage); + setBar("played", percentage); art.seek = second; } }); - proxy(document, 'mouseup', ()=>{ + proxy(document, "mouseup", ()=>{ if (isDroging) isDroging = false; }); } @@ -3253,7 +3176,7 @@ function progress(options) { } exports.default = progress; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"e6eX5":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"hL9ry":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3261,27 +3184,26 @@ function time(option) { return (art)=>({ ...option, style: { - cursor: 'auto' + cursor: "auto" }, mounted: ($control)=>{ function getTime() { - const newTime = `${_utils.secondToTime(art.currentTime)} / ${_utils.secondToTime(art.duration)}`; + const newTime = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`; if (newTime !== $control.innerText) $control.innerText = newTime; } getTime(); const events = [ - 'video:loadedmetadata', - 'video:timeupdate', - 'video:progress' + "video:loadedmetadata", + "video:timeupdate", + "video:progress" ]; for(let index = 0; index < events.length; index++)art.on(events[index], getTime); } - }) - ; + }); } exports.default = time; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"ezhk3":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3G9Wa":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3293,86 +3215,84 @@ function volume(option) { let isDroging = false; const panelWidth = art.constructor.VOLUME_PANEL_WIDTH; const handleWidth = art.constructor.VOLUME_HANDLE_WIDTH; - const $volume = _utils.append($control, icons.volume); - const $volumeClose = _utils.append($control, icons.volumeClose); - const $volumePanel = _utils.append($control, '
'); - const $volumeHandle = _utils.append($volumePanel, '
'); - _utils.tooltip($volume, i18n.get('Mute')); - _utils.setStyle($volumeClose, 'display', 'none'); - if (_utils.isMobile) _utils.setStyle($volumePanel, 'display', 'none'); + const $volume = (0, _utils.append)($control, icons.volume); + const $volumeClose = (0, _utils.append)($control, icons.volumeClose); + const $volumePanel = (0, _utils.append)($control, '
'); + const $volumeHandle = (0, _utils.append)($volumePanel, '
'); + (0, _utils.tooltip)($volume, i18n.get("Mute")); + (0, _utils.setStyle)($volumeClose, "display", "none"); + if (0, _utils.isMobile) (0, _utils.setStyle)($volumePanel, "display", "none"); function volumeChangeFromEvent(event) { const { left: panelLeft } = $volumePanel.getBoundingClientRect(); - const percentage = _utils.clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) / (panelWidth - handleWidth); + const percentage = (0, _utils.clamp)(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) / (panelWidth - handleWidth); return percentage; } function setVolumeHandle(percentage = 0.7) { if (art.muted || percentage === 0) { - _utils.setStyle($volume, 'display', 'none'); - _utils.setStyle($volumeClose, 'display', 'flex'); - _utils.setStyle($volumeHandle, 'left', '0'); + (0, _utils.setStyle)($volume, "display", "none"); + (0, _utils.setStyle)($volumeClose, "display", "flex"); + (0, _utils.setStyle)($volumeHandle, "left", "0"); } else { const width = (panelWidth - handleWidth) * percentage; - _utils.setStyle($volume, 'display', 'flex'); - _utils.setStyle($volumeClose, 'display', 'none'); - _utils.setStyle($volumeHandle, 'left', `${width}px`); + (0, _utils.setStyle)($volume, "display", "flex"); + (0, _utils.setStyle)($volumeClose, "display", "none"); + (0, _utils.setStyle)($volumeHandle, "left", `${width}px`); } } setVolumeHandle(art.volume); - art.on('video:volumechange', ()=>{ + art.on("video:volumechange", ()=>{ setVolumeHandle(art.volume); }); - proxy($volume, 'click', ()=>{ + proxy($volume, "click", ()=>{ art.muted = true; }); - proxy($volumeClose, 'click', ()=>{ + proxy($volumeClose, "click", ()=>{ art.muted = false; }); - proxy($volumePanel, 'click', (event)=>{ + proxy($volumePanel, "click", (event)=>{ art.muted = false; art.volume = volumeChangeFromEvent(event); }); - proxy($volumeHandle, 'mousedown', ()=>{ + proxy($volumeHandle, "mousedown", ()=>{ isDroging = true; }); - proxy($control, 'mousemove', (event)=>{ + proxy($control, "mousemove", (event)=>{ if (isDroging) { art.muted = false; art.volume = volumeChangeFromEvent(event); } }); - proxy(document, 'mouseup', ()=>{ + proxy(document, "mouseup", ()=>{ if (isDroging) isDroging = false; }); } - }) - ; + }); } exports.default = volume; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"3Vg4s":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"jQ9Bw":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function setting(option) { return (art)=>({ ...option, - tooltip: art.i18n.get('Show Setting'), + tooltip: art.i18n.get("Show Setting"), mounted: ($control)=>{ const { events: { proxy } , icons , i18n , } = art; - _utils.append($control, icons.setting); - proxy($control, 'click', ()=>{ + (0, _utils.append)($control, icons.setting); + proxy($control, "click", ()=>{ art.setting.toggle = true; }); - art.on('setting', (value)=>{ - _utils.tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting')); + art.on("setting", (value)=>{ + (0, _utils.tooltip)($control, i18n.get(value ? "Hide Setting" : "Show Setting")); }); } - }) - ; + }); } exports.default = setting; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"8AAYm":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8HBQN":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3386,7 +3306,7 @@ function thumbnails(options) { let loading = false; let isLoad = false; function showThumbnails(event) { - const { width: posWidth } = _progress.getPosFromEvent(art, event); + const { width: posWidth } = (0, _progress.getPosFromEvent)(art, event); const { url , number , column } = option.thumbnails; const width = image.naturalWidth / column; const height = width / ($video.videoWidth / $video.videoHeight); @@ -3394,15 +3314,15 @@ function thumbnails(options) { const perIndex = Math.floor(posWidth / perWidth); const yIndex = Math.ceil(perIndex / column) - 1; const xIndex = perIndex % column || column - 1; - _utils.setStyle($control, 'backgroundImage', `url(${url})`); - _utils.setStyle($control, 'height', `${height}px`); - _utils.setStyle($control, 'width', `${width}px`); - _utils.setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`); - if (posWidth <= width / 2) _utils.setStyle($control, 'left', 0); - else if (posWidth > $progress.clientWidth - width / 2) _utils.setStyle($control, 'left', `${$progress.clientWidth - width}px`); - else _utils.setStyle($control, 'left', `${posWidth - width / 2}px`); + (0, _utils.setStyle)($control, "backgroundImage", `url(${url})`); + (0, _utils.setStyle)($control, "height", `${height}px`); + (0, _utils.setStyle)($control, "width", `${width}px`); + (0, _utils.setStyle)($control, "backgroundPosition", `-${xIndex * width}px -${yIndex * height}px`); + if (posWidth <= width / 2) (0, _utils.setStyle)($control, "left", 0); + else if (posWidth > $progress.clientWidth - width / 2) (0, _utils.setStyle)($control, "left", `${$progress.clientWidth - width}px`); + else (0, _utils.setStyle)($control, "left", `${posWidth - width / 2}px`); } - proxy($progress, 'mousemove', async (event)=>{ + proxy($progress, "mousemove", async (event)=>{ if (!loading) { loading = true; const img = await loadImg(option.thumbnails.url); @@ -3410,50 +3330,47 @@ function thumbnails(options) { isLoad = true; } if (isLoad) { - _utils.setStyle($control, 'display', 'block'); + (0, _utils.setStyle)($control, "display", "block"); showThumbnails(event); } }); - proxy($progress, 'mouseout', ()=>{ - _utils.setStyle($control, 'display', 'none'); + proxy($progress, "mouseout", ()=>{ + (0, _utils.setStyle)($control, "display", "none"); }); } - }) - ; + }); } exports.default = thumbnails; -},{"../utils":"euhMG","./progress":"afGEi","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"lcqMk":[function(require,module,exports) { +},{"../utils":"jmgNb","./progress":"aHyb0","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aA6wc":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function screenshot(option) { return (art)=>({ ...option, - tooltip: art.i18n.get('Screenshot'), + tooltip: art.i18n.get("Screenshot"), mounted: ($control)=>{ const { events: { proxy } , icons , } = art; - _utils.append($control, icons.screenshot); - proxy($control, 'click', ()=>{ + (0, _utils.append)($control, icons.screenshot); + proxy($control, "click", ()=>{ art.screenshot(); }); } - }) - ; + }); } exports.default = screenshot; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"349DU":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5Zppa":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function quality(option) { return (art)=>{ const qualityOption = art.option.quality; - const qualityDefault = qualityOption.find((item)=>item.default - ) || qualityOption[0]; + const qualityDefault = qualityOption.find((item)=>item.default) || qualityOption[0]; return { ...option, - html: qualityDefault ? qualityDefault.html : '', + html: qualityDefault ? qualityDefault.html : "", selector: qualityOption, onSelect (item) { art.switchQuality(item.url, item.html); @@ -3463,7 +3380,7 @@ function quality(option) { } exports.default = quality; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"8hCXR":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3bPO6":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3471,22 +3388,21 @@ function loop(option) { return (art)=>({ ...option, mounted: ($control)=>{ - const $left = _utils.append($control, ``); - const $right = _utils.append($control, ``); - art.on('loop', (value)=>{ + const $left = (0, _utils.append)($control, ``); + const $right = (0, _utils.append)($control, ``); + art.on("loop", (value)=>{ if (value) { - _utils.setStyle($control, 'display', 'block'); - _utils.setStyle($left, 'left', `calc(${value[0] / art.duration * 100}% - ${$left.clientWidth}px)`); - _utils.setStyle($right, 'left', `${value[1] / art.duration * 100}%`); - } else _utils.setStyle($control, 'display', 'none'); + (0, _utils.setStyle)($control, "display", "block"); + (0, _utils.setStyle)($left, "left", `calc(${value[0] / art.duration * 100}% - ${$left.clientWidth}px)`); + (0, _utils.setStyle)($right, "left", `${value[1] / art.duration * 100}%`); + } else (0, _utils.setStyle)($control, "display", "none"); }); } - }) - ; + }); } exports.default = loop; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"iygWX":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5npaZ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3504,47 +3420,47 @@ var _version = require("./version"); var _versionDefault = parcelHelpers.interopDefault(_version); var _close = require("./close"); var _closeDefault = parcelHelpers.interopDefault(_close); -class Contextmenu extends _componentDefault.default { +class Contextmenu extends (0, _componentDefault.default) { constructor(art){ super(art); - this.name = 'contextmenu'; + this.name = "contextmenu"; this.$parent = art.template.$contextmenu; - if (!_utils.isMobile) this.init(); + if (!(0, _utils.isMobile)) this.init(); } init() { const { option , template: { $player , $contextmenu } , events: { proxy } , } = this.art; - this.add(_playbackRateDefault.default({ + this.add((0, _playbackRateDefault.default)({ disable: !option.playbackRate, - name: 'playbackRate', + name: "playbackRate", index: 10 })); - this.add(_aspectRatioDefault.default({ + this.add((0, _aspectRatioDefault.default)({ disable: !option.aspectRatio, - name: 'aspectRatio', + name: "aspectRatio", index: 20 })); - this.add(_flipDefault.default({ + this.add((0, _flipDefault.default)({ disable: !option.flip, - name: 'flip', + name: "flip", index: 30 })); - this.add(_infoDefault.default({ + this.add((0, _infoDefault.default)({ disable: false, - name: 'info', + name: "info", index: 40 })); - this.add(_versionDefault.default({ + this.add((0, _versionDefault.default)({ disable: false, - name: 'version', + name: "version", index: 50 })); - this.add(_closeDefault.default({ + this.add((0, _closeDefault.default)({ disable: false, - name: 'close', + name: "close", index: 60 })); for(let index = 0; index < option.contextmenu.length; index++)this.add(option.contextmenu[index]); - proxy($player, 'contextmenu', (event)=>{ + proxy($player, "contextmenu", (event)=>{ event.preventDefault(); this.show = true; const mouseX = event.clientX; @@ -3555,22 +3471,22 @@ class Contextmenu extends _componentDefault.default { let menuTop = mouseY - cTop; if (mouseX + mWidth > cLeft + cWidth) menuLeft = cWidth - mWidth; if (mouseY + mHeight > cTop + cHeight) menuTop = cHeight - mHeight; - _utils.setStyles($contextmenu, { + (0, _utils.setStyles)($contextmenu, { top: `${menuTop}px`, left: `${menuLeft}px` }); }); - proxy($player, 'click', (event)=>{ - if (!_utils.includeFromEvent(event, $contextmenu)) this.show = false; + proxy($player, "click", (event)=>{ + if (!(0, _utils.includeFromEvent)(event, $contextmenu)) this.show = false; }); - this.art.on('blur', ()=>{ + this.art.on("blur", ()=>{ this.show = false; }); } } exports.default = Contextmenu; -},{"../utils":"euhMG","../utils/component":"1UWqI","./playbackRate":"aEEkc","./aspectRatio":"jQvOA","./flip":"gcvCz","./info":"2g4ET","./version":"6YbWR","./close":"kM2pD","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"aEEkc":[function(require,module,exports) { +},{"../utils":"jmgNb","../utils/component":"bgug2","./playbackRate":"eoKzP","./aspectRatio":"7ejUt","./flip":"dAW0A","./info":"1jWhq","./version":"dapbx","./close":"9E5SI","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"eoKzP":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3579,10 +3495,10 @@ function playbackRate(option) { const { i18n } = art; return { ...option, - html: `${i18n.get('Play Speed')}: + html: `${i18n.get("Play Speed")}: 0.5 0.75 - ${i18n.get('Normal')} + ${i18n.get("Normal")} 1.25 1.5 2.0 @@ -3595,10 +3511,9 @@ function playbackRate(option) { } }, mounted: ($panel)=>{ - art.on('playbackRate', (value)=>{ - const $current = _utils.queryAll('span', $panel).find((item)=>Number(item.dataset.value) === value - ); - if ($current) _utils.inverseClass($current, 'art-current'); + art.on("playbackRate", (value)=>{ + const $current = (0, _utils.queryAll)("span", $panel).find((item)=>Number(item.dataset.value) === value); + if ($current) (0, _utils.inverseClass)($current, "art-current"); }); } }; @@ -3606,7 +3521,7 @@ function playbackRate(option) { } exports.default = playbackRate; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"jQvOA":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"7ejUt":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3615,8 +3530,8 @@ function aspectRatio(option) { const { i18n } = art; return { ...option, - html: `${i18n.get('Aspect Ratio')}: - ${i18n.get('Default')} + html: `${i18n.get("Aspect Ratio")}: + ${i18n.get("Default")} 4:3 16:9 `, @@ -3628,10 +3543,9 @@ function aspectRatio(option) { } }, mounted: ($panel)=>{ - art.on('aspectRatio', (value)=>{ - const $current = _utils.queryAll('span', $panel).find((item)=>item.dataset.value === value - ); - if ($current) _utils.inverseClass($current, 'art-current'); + art.on("aspectRatio", (value)=>{ + const $current = (0, _utils.queryAll)("span", $panel).find((item)=>item.dataset.value === value); + if ($current) (0, _utils.inverseClass)($current, "art-current"); }); } }; @@ -3639,7 +3553,7 @@ function aspectRatio(option) { } exports.default = aspectRatio; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"gcvCz":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dAW0A":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -3648,10 +3562,10 @@ function flip(option) { const { i18n } = art; return { ...option, - html: `${i18n.get('Video Flip')}: - ${i18n.get('Normal')} - ${i18n.get('Horizontal')} - ${i18n.get('Vertical')} + html: `${i18n.get("Video Flip")}: + ${i18n.get("Normal")} + ${i18n.get("Horizontal")} + ${i18n.get("Vertical")} `, click: (contextmenu, event)=>{ const { value } = event.target.dataset; @@ -3661,10 +3575,9 @@ function flip(option) { } }, mounted: ($panel)=>{ - art.on('flip', (value)=>{ - const $current = _utils.queryAll('span', $panel).find((item)=>item.dataset.value === value - ); - if ($current) _utils.inverseClass($current, 'art-current'); + art.on("flip", (value)=>{ + const $current = (0, _utils.queryAll)("span", $panel).find((item)=>item.dataset.value === value); + if ($current) (0, _utils.inverseClass)($current, "art-current"); }); } }; @@ -3672,75 +3585,73 @@ function flip(option) { } exports.default = flip; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"2g4ET":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1jWhq":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function info(option) { return (art)=>({ ...option, - html: art.i18n.get('Video Info'), + html: art.i18n.get("Video Info"), click: (contextmenu)=>{ art.info.show = true; contextmenu.show = false; } - }) - ; + }); } exports.default = info; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6YbWR":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dapbx":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function version(option) { return { ...option, - html: `ArtPlayer ${"4.4.3"}` + html: `ArtPlayer ${"4.5.1"}` }; } exports.default = version; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"kM2pD":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9E5SI":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function close(option) { return (art)=>({ ...option, - html: art.i18n.get('Close'), + html: art.i18n.get("Close"), click: (contextmenu)=>{ contextmenu.show = false; } - }) - ; + }); } exports.default = close; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6tuCt":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"6vVKE":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); var _component = require("./utils/component"); var _componentDefault = parcelHelpers.interopDefault(_component); -class Info extends _componentDefault.default { +class Info extends (0, _componentDefault.default) { constructor(art){ super(art); - this.name = 'info'; - if (!_utils.isMobile) this.init(); + this.name = "info"; + if (!(0, _utils.isMobile)) this.init(); } init() { const { constructor , events: { proxy } , template: { $infoPanel , $infoClose , $video } , } = this.art; - proxy($infoClose, 'click', ()=>{ + proxy($infoClose, "click", ()=>{ this.show = false; }); let timer = null; - const $types = _utils.queryAll('[data-video]', $infoPanel) || []; - this.art.on('destroy', ()=>{ + const $types = (0, _utils.queryAll)("[data-video]", $infoPanel) || []; + this.art.on("destroy", ()=>{ clearTimeout(timer); }); function loop() { for(let index = 0; index < $types.length; index++){ const item = $types[index]; const value = $video[item.dataset.video]; - const innerText = typeof value === 'number' ? value.toFixed(2) : value; + const innerText = typeof value === "number" ? value.toFixed(2) : value; if (item.innerText !== innerText) item.innerText = innerText; } timer = setTimeout(loop, constructor.INFO_LOOP_TIME); @@ -3750,7 +3661,7 @@ class Info extends _componentDefault.default { } exports.default = Info; -},{"./utils":"euhMG","./utils/component":"1UWqI","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"1kFyE":[function(require,module,exports) { +},{"./utils":"jmgNb","./utils/component":"bgug2","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"4exyO":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -3760,10 +3671,10 @@ var _optionValidator = require("option-validator"); var _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator); var _scheme = require("./scheme"); var _schemeDefault = parcelHelpers.interopDefault(_scheme); -class Subtitle extends _componentDefault.default { +class Subtitle extends (0, _componentDefault.default) { constructor(art){ super(art); - this.name = 'subtitle'; + this.name = "subtitle"; this.init(art.option.subtitle); } get url() { @@ -3780,16 +3691,15 @@ class Subtitle extends _componentDefault.default { } style(key, value) { const { $subtitle } = this.art.template; - if (typeof key === 'object') return _utils.setStyles($subtitle, key); - return _utils.setStyle($subtitle, key, value); + if (typeof key === "object") return (0, _utils.setStyles)($subtitle, key); + return (0, _utils.setStyle)($subtitle, key, value); } update() { const { $subtitle } = this.art.template; - $subtitle.innerHTML = ''; + $subtitle.innerHTML = ""; if (this.activeCue) { - $subtitle.innerHTML = this.activeCue.text.split(/\r?\n/).map((item)=>`

${_utils.escape(item)}

` - ).join(''); - this.art.emit('subtitleUpdate', this.activeCue.text); + $subtitle.innerHTML = this.activeCue.text.split(/\r?\n/).map((item)=>`

${(0, _utils.escape)(item)}

`).join(""); + this.art.emit("subtitleUpdate", this.activeCue.text); } } async switch(url, newOption = {}) { @@ -3800,45 +3710,44 @@ class Subtitle extends _componentDefault.default { url }; const subUrl = await this.init(subtitleOption); - if (newOption.name) notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`; + if (newOption.name) notice.show = `${i18n.get("Switch Subtitle")}: ${newOption.name}`; return subUrl; } init(subtitleOption) { - _optionValidatorDefault.default(subtitleOption, _schemeDefault.default.subtitle); + (0, _optionValidatorDefault.default)(subtitleOption, (0, _schemeDefault.default).subtitle); if (!subtitleOption.url) return; const { notice , events: { proxy } , template: { $subtitle , $video , $track } , } = this.art; if (!$track) { - const $track = document.createElement('track'); + const $track = document.createElement("track"); $track.default = true; - $track.kind = 'metadata'; + $track.kind = "metadata"; $video.appendChild($track); this.art.template.$track = $track; - proxy(this.textTrack, 'cuechange', this.update.bind(this)); + proxy(this.textTrack, "cuechange", this.update.bind(this)); } this.style(subtitleOption.style); - _utils.errorHandle(window.fetch, 'fetch not support'); - return fetch(subtitleOption.url).then((response)=>response.arrayBuffer() - ).then((buffer)=>{ - _utils.errorHandle(window.TextDecoder, 'TextDecoder not support'); + (0, _utils.errorHandle)(window.fetch, "fetch not support"); + return fetch(subtitleOption.url).then((response)=>response.arrayBuffer()).then((buffer)=>{ + (0, _utils.errorHandle)(window.TextDecoder, "TextDecoder not support"); const decoder = new TextDecoder(subtitleOption.encoding); const text = decoder.decode(buffer); - this.art.emit('subtitleLoad', subtitleOption.url); - switch(subtitleOption.type || _utils.getExt(subtitleOption.url)){ - case 'srt': - return _utils.vttToBlob(_utils.srtToVtt(text)); - case 'ass': - return _utils.vttToBlob(_utils.assToVtt(text)); - case 'vtt': - return _utils.vttToBlob(text); + this.art.emit("subtitleLoad", subtitleOption.url); + switch(subtitleOption.type || (0, _utils.getExt)(subtitleOption.url)){ + case "srt": + return (0, _utils.vttToBlob)((0, _utils.srtToVtt)(text)); + case "ass": + return (0, _utils.vttToBlob)((0, _utils.assToVtt)(text)); + case "vtt": + return (0, _utils.vttToBlob)(text); default: return subtitleOption.url; } }).then((subUrl)=>{ - $subtitle.innerHTML = ''; + $subtitle.innerHTML = ""; if (this.url === subUrl) return subUrl; URL.revokeObjectURL(this.url); this.art.template.$track.src = subUrl; - this.art.emit('subtitleSwitch', subUrl); + this.art.emit("subtitleSwitch", subUrl); return subUrl; }).catch((err)=>{ notice.show = err; @@ -3848,7 +3757,7 @@ class Subtitle extends _componentDefault.default { } exports.default = Subtitle; -},{"./utils":"euhMG","./utils/component":"1UWqI","option-validator":"2tbdu","./scheme":"jVxq1","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"akAUN":[function(require,module,exports) { +},{"./utils":"jmgNb","./utils/component":"bgug2","option-validator":"2tbdu","./scheme":"gL38d","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dz5ul":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _error = require("../utils/error"); @@ -3871,40 +3780,36 @@ class Events { this.hover = this.hover.bind(this); this.loadImg = this.loadImg.bind(this); if (art.whitelist.state) { - _clickInitDefault.default(art, this); - _hoverInitDefault.default(art, this); - _mousemoveInitDefault.default(art, this); - _resizeInitDefault.default(art, this); - _gestureInitDefault.default(art, this); - _viewInitDefault.default(art, this); + (0, _clickInitDefault.default)(art, this); + (0, _hoverInitDefault.default)(art, this); + (0, _mousemoveInitDefault.default)(art, this); + (0, _resizeInitDefault.default)(art, this); + (0, _gestureInitDefault.default)(art, this); + (0, _viewInitDefault.default)(art, this); } } proxy(target, name, callback, option = {}) { - if (Array.isArray(name)) return name.map((item)=>this.proxy(target, item, callback, option) - ); + if (Array.isArray(name)) return name.map((item)=>this.proxy(target, item, callback, option)); target.addEventListener(name, callback, option); - const destroy = ()=>target.removeEventListener(name, callback, option) - ; + const destroy = ()=>target.removeEventListener(name, callback, option); this.destroyEvents.push(destroy); return destroy; } hover(target, mouseenter, mouseleave) { - if (mouseenter) this.proxy(target, 'mouseenter', mouseenter); - if (mouseleave) this.proxy(target, 'mouseleave', mouseleave); + if (mouseenter) this.proxy(target, "mouseenter", mouseenter); + if (mouseleave) this.proxy(target, "mouseleave", mouseleave); } loadImg(img) { return new Promise((resolve, reject)=>{ let image; if (img instanceof HTMLImageElement) image = img; - else if (typeof img === 'string') { + else if (typeof img === "string") { image = new Image(); image.src = img; - } else return reject(new _error.ArtPlayerError('Unable to get Image')); + } else return reject(new (0, _error.ArtPlayerError)("Unable to get Image")); if (image.complete) return resolve(image); - this.proxy(image, 'load', ()=>resolve(image) - ); - this.proxy(image, 'error', ()=>reject(new _error.ArtPlayerError(`Failed to load Image: ${image.src}`)) - ); + this.proxy(image, "load", ()=>resolve(image)); + this.proxy(image, "error", ()=>reject(new (0, _error.ArtPlayerError)(`Failed to load Image: ${image.src}`))); }); } destroy() { @@ -3913,100 +3818,100 @@ class Events { } exports.default = Events; -},{"../utils/error":"kCmly","./clickInit":"4xN0W","./hoverInit":"bO8Cy","./mousemoveInit":"gouR1","./resizeInit":"1e06H","./gestureInit":"1Cim3","./viewInit":"xZUxN","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"4xN0W":[function(require,module,exports) { +},{"../utils/error":"622b3","./clickInit":"3fsfH","./hoverInit":"jr1ic","./mousemoveInit":"bH4JU","./resizeInit":"2r19L","./gestureInit":"2IPOb","./viewInit":"fmrIX","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"3fsfH":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function clickInit(art, events) { const { constructor , template: { $player , $video } , } = art; events.proxy(document, [ - 'click', - 'contextmenu' + "click", + "contextmenu" ], (event)=>{ - if (_utils.includeFromEvent(event, $player)) { - art.isInput = event.target.tagName === 'INPUT'; + if ((0, _utils.includeFromEvent)(event, $player)) { + art.isInput = event.target.tagName === "INPUT"; art.isFocus = true; - art.emit('focus'); + art.emit("focus"); } else { art.isInput = false; art.isFocus = false; - art.emit('blur'); + art.emit("blur"); } }); let clickTime = 0; - events.proxy($video, 'click', ()=>{ + events.proxy($video, "click", ()=>{ const now = Date.now(); if (now - clickTime <= constructor.DB_CLICE_TIME) { - art.emit('dblclick'); - if (_utils.isMobile) { + art.emit("dblclick"); + if (0, _utils.isMobile) { if (!art.isLock) art.toggle(); } else art.fullscreen = !art.fullscreen; } else { - art.emit('click'); - if (!_utils.isMobile) art.toggle(); + art.emit("click"); + if (!(0, _utils.isMobile)) art.toggle(); } clickTime = now; }); } exports.default = clickInit; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"bO8Cy":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"jr1ic":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function hoverInit(art, events) { const { $player } = art.template; events.hover($player, ()=>{ - _utils.addClass($player, 'art-hover'); - art.emit('hover', true); + (0, _utils.addClass)($player, "art-hover"); + art.emit("hover", true); }, ()=>{ - _utils.removeClass($player, 'art-hover'); - art.emit('hover'); + (0, _utils.removeClass)($player, "art-hover"); + art.emit("hover"); }); } exports.default = hoverInit; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"gouR1":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"bH4JU":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function mousemoveInitInit(art, events) { const { $player } = art.template; - events.proxy($player, 'mousemove', (event)=>{ - art.emit('mousemove', event); + events.proxy($player, "mousemove", (event)=>{ + art.emit("mousemove", event); }); } exports.default = mousemoveInitInit; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"1e06H":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"2r19L":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function resizeInit(art, events) { const { option } = art; - const resizeFn = _utils.throttle(()=>{ + const resizeFn = (0, _utils.throttle)(()=>{ if (art.normalSize) art.autoSize = option.autoSize; art.aspectRatioReset = true; - art.notice.show = ''; - art.emit('resize'); + art.notice.show = ""; + art.emit("resize"); }, art.constructor.RESIZE_TIME); events.proxy(window, [ - 'orientationchange', - 'resize' + "orientationchange", + "resize" ], ()=>{ resizeFn(); }); - if (screen && screen.orientation && screen.orientation.onchange) events.proxy(screen.orientation, 'change', ()=>{ + if (screen && screen.orientation && screen.orientation.onchange) events.proxy(screen.orientation, "change", ()=>{ resizeFn(); }); } exports.default = resizeInit; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"1Cim3":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"2IPOb":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function gestureInit(art, events) { - if (_utils.isMobile && !art.option.isLive) { + if ((0, _utils.isMobile) && !art.option.isLive) { const { $video , $bottom , $controls } = art.template; let isDroging = false; let startX = 0; @@ -4025,13 +3930,13 @@ function gestureInit(art, events) { if (event.touches.length === 1 && isDroging && art.duration) { const autoOrientation = art.plugins.autoOrientation && art.plugins.autoOrientation.state; const { clientX , clientY } = event.touches[0]; - const ratioX = _utils.clamp((clientX - startX) / art.width, -1, 1); - const ratioY = _utils.clamp((clientY - startY) / art.height, -1, 1); + const ratioX = (0, _utils.clamp)((clientX - startX) / art.width, -1, 1); + const ratioY = (0, _utils.clamp)((clientY - startY) / art.height, -1, 1); const ratio = autoOrientation ? ratioY : ratioX; - const currentTime = _utils.clamp(startTime + art.duration * ratio / 2, 0, art.duration); + const currentTime = (0, _utils.clamp)(startTime + art.duration * ratio / 2, 0, art.duration); art.seek = currentTime; - art.emit('setBar', 'played', _utils.clamp(currentTime / art.duration, 0, 1)); - art.notice.show = `${_utils.secondToTime(currentTime)} / ${_utils.secondToTime(art.duration)}`; + art.emit("setBar", "played", (0, _utils.clamp)(currentTime / art.duration, 0, 1)); + art.notice.show = `${(0, _utils.secondToTime)(currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`; } }; const onTouchEnd = ()=>{ @@ -4042,36 +3947,36 @@ function gestureInit(art, events) { isDroging = false; } }; - events.proxy($bottom, 'touchstart', (event)=>{ - if (!_utils.includeFromEvent(event, $controls)) onTouchStart(event); + events.proxy($bottom, "touchstart", (event)=>{ + if (!(0, _utils.includeFromEvent)(event, $controls)) onTouchStart(event); }); - events.proxy($bottom, 'touchmove', onTouchMove); - events.proxy($video, 'touchstart', onTouchStart); - events.proxy($video, 'touchmove', onTouchMove); - events.proxy(document, 'touchend', onTouchEnd); + events.proxy($bottom, "touchmove", onTouchMove); + events.proxy($video, "touchstart", onTouchStart); + events.proxy($video, "touchmove", onTouchMove); + events.proxy(document, "touchend", onTouchEnd); } } exports.default = gestureInit; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"xZUxN":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fmrIX":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function viewInit(art, events) { const { option , constructor , template: { $container } , } = art; - const scrollFn = _utils.throttle(()=>{ - art.emit('view', _utils.isInViewport($container, constructor.SCROLL_GAP)); + const scrollFn = (0, _utils.throttle)(()=>{ + art.emit("view", (0, _utils.isInViewport)($container, constructor.SCROLL_GAP)); }, constructor.SCROLL_TIME); - events.proxy(window, 'scroll', ()=>{ + events.proxy(window, "scroll", ()=>{ scrollFn(); }); - art.on('view', (state)=>{ + art.on("view", (state)=>{ if (option.autoMini) art.mini = !state; }); } exports.default = viewInit; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"f1oWx":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1nFqF":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -4079,7 +3984,7 @@ class Hotkey { constructor(art){ this.art = art; this.keys = {}; - if (art.option.hotkey && !_utils.isMobile) this.init(); + if (art.option.hotkey && !(0, _utils.isMobile)) this.init(); } init() { const { proxy } = this.art.events; @@ -4101,16 +4006,16 @@ class Hotkey { this.add(40, ()=>{ this.art.volume -= 0.1; }); - proxy(window, 'keydown', (event)=>{ + proxy(window, "keydown", (event)=>{ if (this.art.isFocus) { const tag = document.activeElement.tagName.toUpperCase(); - const editable = document.activeElement.getAttribute('contenteditable'); - if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') { + const editable = document.activeElement.getAttribute("contenteditable"); + if (tag !== "INPUT" && tag !== "TEXTAREA" && editable !== "" && editable !== "true") { const events = this.keys[event.keyCode]; if (events) { event.preventDefault(); for(let index = 0; index < events.length; index++)events[index].call(this.art, event); - this.art.emit('hotkey', event); + this.art.emit("hotkey", event); } } } @@ -4133,38 +4038,38 @@ class Hotkey { } exports.default = Hotkey; -},{"./utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"bKuSu":[function(require,module,exports) { +},{"./utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fvy8V":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _component = require("./utils/component"); var _componentDefault = parcelHelpers.interopDefault(_component); -class Layer extends _componentDefault.default { +class Layer extends (0, _componentDefault.default) { constructor(art){ super(art); const { option , template: { $layer } , } = art; - this.name = 'layer'; + this.name = "layer"; this.$parent = $layer; for(let index = 0; index < option.layers.length; index++)this.add(option.layers[index]); } } exports.default = Layer; -},{"./utils/component":"1UWqI","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"4AfId":[function(require,module,exports) { +},{"./utils/component":"bgug2","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"h8KPY":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); var _component = require("./utils/component"); var _componentDefault = parcelHelpers.interopDefault(_component); -class Loading extends _componentDefault.default { +class Loading extends (0, _componentDefault.default) { constructor(art){ super(art); - this.name = 'loading'; - _utils.append(art.template.$loading, art.icons.loading); + this.name = "loading"; + (0, _utils.append)(art.template.$loading, art.icons.loading); } } exports.default = Loading; -},{"./utils":"euhMG","./utils/component":"1UWqI","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"aKncc":[function(require,module,exports) { +},{"./utils":"jmgNb","./utils/component":"bgug2","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"cr1XY":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); @@ -4177,42 +4082,41 @@ class Notice { const { constructor , template: { $player , $noticeInner } , } = this.art; if (msg) { $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg; - _utils.addClass($player, 'art-notice-show'); + (0, _utils.addClass)($player, "art-notice-show"); clearTimeout(this.timer); this.timer = setTimeout(()=>{ - $noticeInner.innerText = ''; - _utils.removeClass($player, 'art-notice-show'); + $noticeInner.innerText = ""; + (0, _utils.removeClass)($player, "art-notice-show"); }, constructor.NOTICE_TIME); - } else _utils.removeClass($player, 'art-notice-show'); + } else (0, _utils.removeClass)($player, "art-notice-show"); } } exports.default = Notice; -},{"./utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"1R5LH":[function(require,module,exports) { +},{"./utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"llnR4":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("./utils"); var _component = require("./utils/component"); var _componentDefault = parcelHelpers.interopDefault(_component); -class Mask extends _componentDefault.default { +class Mask extends (0, _componentDefault.default) { constructor(art){ super(art); - this.name = 'mask'; + this.name = "mask"; const { template , icons , events } = art; - const $state = _utils.append(template.$state, icons.state); - const $error = _utils.append(template.$state, icons.error); - _utils.setStyle($error, 'display', 'none'); - art.on('destroy', ()=>{ - _utils.setStyle($state, 'display', 'none'); - _utils.setStyle($error, 'display', null); + const $state = (0, _utils.append)(template.$state, icons.state); + const $error = (0, _utils.append)(template.$state, icons.error); + (0, _utils.setStyle)($error, "display", "none"); + art.on("destroy", ()=>{ + (0, _utils.setStyle)($state, "display", "none"); + (0, _utils.setStyle)($error, "display", null); }); - events.proxy(template.$state, 'click', ()=>art.play() - ); + events.proxy(template.$state, "click", ()=>art.play()); } } exports.default = Mask; -},{"./utils":"euhMG","./utils/component":"1UWqI","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"bPpva":[function(require,module,exports) { +},{"./utils":"jmgNb","./utils/component":"bgug2","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"gP6M7":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -4266,43 +4170,46 @@ var _flipSvg = require("bundle-text:./flip.svg"); var _flipSvgDefault = parcelHelpers.interopDefault(_flipSvg); var _errorSvg = require("bundle-text:./error.svg"); var _errorSvgDefault = parcelHelpers.interopDefault(_errorSvg); +var _closeSvg = require("bundle-text:./close.svg"); +var _closeSvgDefault = parcelHelpers.interopDefault(_closeSvg); class Icons { constructor(art){ const icons = { - loading: _loadingSvgDefault.default, - state: _stateSvgDefault.default, - play: _playSvgDefault.default, - pause: _pauseSvgDefault.default, - check: _checkSvgDefault.default, - volume: _volumeSvgDefault.default, - volumeClose: _volumeCloseSvgDefault.default, - screenshot: _screenshotSvgDefault.default, - setting: _settingSvgDefault.default, - pip: _pipSvgDefault.default, - arrowLeft: _arrowLeftSvgDefault.default, - arrowRight: _arrowRightSvgDefault.default, - playbackRate: _playbackRateSvgDefault.default, - aspectRatio: _aspectRatioSvgDefault.default, - config: _configSvgDefault.default, - lock: _lockSvgDefault.default, - flip: _flipSvgDefault.default, - unlock: _unlockSvgDefault.default, - fullscreenOff: _fullscreenOffSvgDefault.default, - fullscreenOn: _fullscreenOnSvgDefault.default, - fullscreenWebOff: _fullscreenWebOffSvgDefault.default, - fullscreenWebOn: _fullscreenWebOnSvgDefault.default, - switchOn: _switchOnSvgDefault.default, - switchOff: _switchOffSvgDefault.default, - error: _errorSvgDefault.default, + loading: (0, _loadingSvgDefault.default), + state: (0, _stateSvgDefault.default), + play: (0, _playSvgDefault.default), + pause: (0, _pauseSvgDefault.default), + check: (0, _checkSvgDefault.default), + volume: (0, _volumeSvgDefault.default), + volumeClose: (0, _volumeCloseSvgDefault.default), + screenshot: (0, _screenshotSvgDefault.default), + setting: (0, _settingSvgDefault.default), + pip: (0, _pipSvgDefault.default), + arrowLeft: (0, _arrowLeftSvgDefault.default), + arrowRight: (0, _arrowRightSvgDefault.default), + playbackRate: (0, _playbackRateSvgDefault.default), + aspectRatio: (0, _aspectRatioSvgDefault.default), + config: (0, _configSvgDefault.default), + lock: (0, _lockSvgDefault.default), + flip: (0, _flipSvgDefault.default), + unlock: (0, _unlockSvgDefault.default), + fullscreenOff: (0, _fullscreenOffSvgDefault.default), + fullscreenOn: (0, _fullscreenOnSvgDefault.default), + fullscreenWebOff: (0, _fullscreenWebOffSvgDefault.default), + fullscreenWebOn: (0, _fullscreenWebOnSvgDefault.default), + switchOn: (0, _switchOnSvgDefault.default), + switchOff: (0, _switchOffSvgDefault.default), + error: (0, _errorSvgDefault.default), + close: (0, _closeSvgDefault.default), ...art.option.icons }; Object.keys(icons).forEach((key)=>{ - _utils.def(this, key, { + (0, _utils.def)(this, key, { get: ()=>{ - const icon = document.createElement('i'); - _utils.addClass(icon, 'art-icon'); - _utils.addClass(icon, `art-icon-${key}`); - _utils.append(icon, icons[key]); + const icon = document.createElement("i"); + (0, _utils.addClass)(icon, "art-icon"); + (0, _utils.addClass)(icon, `art-icon-${key}`); + (0, _utils.append)(icon, icons[key]); return icon; } }); @@ -4311,82 +4218,85 @@ class Icons { } exports.default = Icons; -},{"../utils":"euhMG","bundle-text:./loading.svg":"kSZpY","bundle-text:./state.svg":"l1cGI","bundle-text:./check.svg":"ihtKw","bundle-text:./play.svg":"aCrjI","bundle-text:./pause.svg":"djndS","bundle-text:./volume.svg":"3Mi6x","bundle-text:./volume-close.svg":"jxG45","bundle-text:./screenshot.svg":"eXfwA","bundle-text:./setting.svg":"kXSEM","bundle-text:./arrow-left.svg":"etyqn","bundle-text:./arrow-right.svg":"fU9m5","bundle-text:./playback-rate.svg":"wh93r","bundle-text:./aspect-ratio.svg":"2OSVS","bundle-text:./config.svg":"1WMKP","bundle-text:./pip.svg":"gGDL8","bundle-text:./lock.svg":"bDVqH","bundle-text:./unlock.svg":"b8r9U","bundle-text:./fullscreen-off.svg":"1F5ib","bundle-text:./fullscreen-on.svg":"6Nkxe","bundle-text:./fullscreen-web-off.svg":"akUW2","bundle-text:./fullscreen-web-on.svg":"5ohBx","bundle-text:./switch-on.svg":"2V2BU","bundle-text:./switch-off.svg":"cIVbn","bundle-text:./flip.svg":"eBNt7","bundle-text:./error.svg":"32zQ7","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"kSZpY":[function(require,module,exports) { +},{"../utils":"jmgNb","bundle-text:./loading.svg":"kQAWs","bundle-text:./state.svg":"fv62Y","bundle-text:./check.svg":"hpwmG","bundle-text:./play.svg":"ez3XI","bundle-text:./pause.svg":"cXb2s","bundle-text:./volume.svg":"9ziFm","bundle-text:./volume-close.svg":"gHdy5","bundle-text:./screenshot.svg":"7uQ3x","bundle-text:./setting.svg":"23jGe","bundle-text:./arrow-left.svg":"2m0J3","bundle-text:./arrow-right.svg":"d9iPY","bundle-text:./playback-rate.svg":"iFVXO","bundle-text:./aspect-ratio.svg":"4qJAN","bundle-text:./config.svg":"6iK2N","bundle-text:./pip.svg":"f0XBL","bundle-text:./lock.svg":"kCaVg","bundle-text:./unlock.svg":"lWIPo","bundle-text:./fullscreen-off.svg":"a6qSz","bundle-text:./fullscreen-on.svg":"2cUeR","bundle-text:./fullscreen-web-off.svg":"9P4Tw","bundle-text:./fullscreen-web-on.svg":"lv7bb","bundle-text:./switch-on.svg":"iaKl1","bundle-text:./switch-off.svg":"47VYR","bundle-text:./flip.svg":"kQBsA","bundle-text:./error.svg":"gHC6Z","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6","bundle-text:./close.svg":"dSIbz"}],"kQAWs":[function(require,module,exports) { module.exports = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"; -},{}],"l1cGI":[function(require,module,exports) { +},{}],"fv62Y":[function(require,module,exports) { module.exports = "\n \n"; -},{}],"ihtKw":[function(require,module,exports) { +},{}],"hpwmG":[function(require,module,exports) { module.exports = "\n\n"; -},{}],"aCrjI":[function(require,module,exports) { +},{}],"ez3XI":[function(require,module,exports) { module.exports = "\n \n"; -},{}],"djndS":[function(require,module,exports) { +},{}],"cXb2s":[function(require,module,exports) { module.exports = "\n \n"; -},{}],"3Mi6x":[function(require,module,exports) { +},{}],"9ziFm":[function(require,module,exports) { module.exports = "\n \n \n"; -},{}],"jxG45":[function(require,module,exports) { +},{}],"gHdy5":[function(require,module,exports) { module.exports = "\n \n \n"; -},{}],"eXfwA":[function(require,module,exports) { +},{}],"7uQ3x":[function(require,module,exports) { module.exports = "\n\t\n\n"; -},{}],"kXSEM":[function(require,module,exports) { +},{}],"23jGe":[function(require,module,exports) { module.exports = "\n \n \n"; -},{}],"etyqn":[function(require,module,exports) { +},{}],"2m0J3":[function(require,module,exports) { module.exports = "\n \n"; -},{}],"fU9m5":[function(require,module,exports) { +},{}],"d9iPY":[function(require,module,exports) { module.exports = "\n \n"; -},{}],"wh93r":[function(require,module,exports) { +},{}],"iFVXO":[function(require,module,exports) { module.exports = ""; -},{}],"2OSVS":[function(require,module,exports) { +},{}],"4qJAN":[function(require,module,exports) { module.exports = ""; -},{}],"1WMKP":[function(require,module,exports) { +},{}],"6iK2N":[function(require,module,exports) { module.exports = ""; -},{}],"gGDL8":[function(require,module,exports) { +},{}],"f0XBL":[function(require,module,exports) { module.exports = "\n \n"; -},{}],"bDVqH":[function(require,module,exports) { +},{}],"kCaVg":[function(require,module,exports) { module.exports = "\n\n\n\n"; -},{}],"b8r9U":[function(require,module,exports) { +},{}],"lWIPo":[function(require,module,exports) { module.exports = "\n\n\n"; -},{}],"1F5ib":[function(require,module,exports) { +},{}],"a6qSz":[function(require,module,exports) { module.exports = "\n\n\n\n"; -},{}],"6Nkxe":[function(require,module,exports) { +},{}],"2cUeR":[function(require,module,exports) { module.exports = "\n\n\n\n"; -},{}],"akUW2":[function(require,module,exports) { +},{}],"9P4Tw":[function(require,module,exports) { module.exports = "\n\n\n\n"; -},{}],"5ohBx":[function(require,module,exports) { +},{}],"lv7bb":[function(require,module,exports) { module.exports = "\n\n\n\n"; -},{}],"2V2BU":[function(require,module,exports) { +},{}],"iaKl1":[function(require,module,exports) { module.exports = "\n\n\n \n"; -},{}],"cIVbn":[function(require,module,exports) { +},{}],"47VYR":[function(require,module,exports) { module.exports = "\n\n\n \n"; -},{}],"eBNt7":[function(require,module,exports) { +},{}],"kQBsA":[function(require,module,exports) { module.exports = "\n\n\n\n\n"; -},{}],"32zQ7":[function(require,module,exports) { +},{}],"gHC6Z":[function(require,module,exports) { module.exports = "\n\n\n\n\n"; -},{}],"i2oRN":[function(require,module,exports) { +},{}],"dSIbz":[function(require,module,exports) { +module.exports = "\n\n\n\n\n"; + +},{}],"e5Aaq":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _flip = require("./flip"); @@ -4411,35 +4321,35 @@ function makeRecursion(option, parentItem, parentList) { } function isStringOrNumber(val) { return [ - 'string', - 'number' + "string", + "number" ].includes(typeof val); } -class Setting extends _componentDefault.default { +class Setting extends (0, _componentDefault.default) { constructor(art){ super(art); const { option , events: { proxy } , template: { $setting , $player } , } = art; - this.name = 'setting'; + this.name = "setting"; this.$parent = $setting; this.option = []; this.events = []; this.cache = new Map(); if (option.setting) { - if (option.playbackRate) this.option.push(_playbackRateDefault.default(art)); - if (option.aspectRatio) this.option.push(_aspectRatioDefault.default(art)); - if (option.flip) this.option.push(_flipDefault.default(art)); - if (option.subtitleOffset) this.option.push(_subtitleOffsetDefault.default(art)); + if (option.playbackRate) this.option.push((0, _playbackRateDefault.default)(art)); + if (option.aspectRatio) this.option.push((0, _aspectRatioDefault.default)(art)); + if (option.flip) this.option.push((0, _flipDefault.default)(art)); + if (option.subtitleOffset) this.option.push((0, _subtitleOffsetDefault.default)(art)); for(let index = 0; index < option.settings.length; index++)this.option.push(option.settings[index]); this.option = makeRecursion(this.option); this.init(this.option); - art.on('blur', ()=>{ + art.on("blur", ()=>{ if (this.show) { this.show = false; this.init(this.option); } }); - proxy($player, 'click', (event)=>{ - if (this.show && !_utils.includeFromEvent(event, art.controls.setting) && !_utils.includeFromEvent(event, this.$parent)) { + proxy($player, "click", (event)=>{ + if (this.show && !(0, _utils.includeFromEvent)(event, art.controls.setting) && !(0, _utils.includeFromEvent)(event, this.$parent)) { this.show = false; this.init(this.option); } @@ -4447,28 +4357,27 @@ class Setting extends _componentDefault.default { } } add(callback) { - if (typeof callback === 'function') this.option.push(callback(this.art)); + if (typeof callback === "function") this.option.push(callback(this.art)); else this.option.push(callback); this.cache = new Map(); - this.events.forEach((event)=>event() - ); + this.events.forEach((event)=>event()); this.events = []; - this.$parent.innerHTML = ''; + this.$parent.innerHTML = ""; this.option = makeRecursion(this.option); this.init(this.option); } creatHeader(item) { const { icons , events: { proxy } , } = this.art; - const $item = document.createElement('div'); - _utils.addClass($item, 'art-setting-item'); - _utils.addClass($item, 'art-setting-item-back'); - const $left = _utils.append($item, '
'); - const $icon = document.createElement('div'); - _utils.addClass($icon, 'art-setting-item-left-icon'); - _utils.append($icon, icons.arrowLeft); - _utils.append($left, $icon); - _utils.append($left, item.$parentItem.html); - const event = proxy($item, 'click', ()=>{ + const $item = document.createElement("div"); + (0, _utils.addClass)($item, "art-setting-item"); + (0, _utils.addClass)($item, "art-setting-item-back"); + const $left = (0, _utils.append)($item, '
'); + const $icon = document.createElement("div"); + (0, _utils.addClass)($icon, "art-setting-item-left-icon"); + (0, _utils.append)($icon, icons.arrowLeft); + (0, _utils.append)($left, $icon); + (0, _utils.append)($left, item.$parentItem.html); + const event = proxy($item, "click", ()=>{ this.init(item.$parentList); }); this.events.push(event); @@ -4476,29 +4385,29 @@ class Setting extends _componentDefault.default { } creatItem(type, item) { const { icons , events: { proxy } , } = this.art; - const $item = document.createElement('div'); - _utils.addClass($item, 'art-setting-item'); + const $item = document.createElement("div"); + (0, _utils.addClass)($item, "art-setting-item"); if (isStringOrNumber(item.name)) $item.dataset.name = item.name; if (isStringOrNumber(item.value)) $item.dataset.value = item.value; - const $left = _utils.append($item, '
'); - const $right = _utils.append($item, '
'); - const $icon = document.createElement('div'); - _utils.addClass($icon, 'art-setting-item-left-icon'); + const $left = (0, _utils.append)($item, '
'); + const $right = (0, _utils.append)($item, '
'); + const $icon = document.createElement("div"); + (0, _utils.addClass)($icon, "art-setting-item-left-icon"); switch(type){ - case 'switch': - case 'range': - _utils.append($icon, isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config); + case "switch": + case "range": + (0, _utils.append)($icon, isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config); break; - case 'selector': - if (item.selector && item.selector.length) _utils.append($icon, isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config); - else _utils.append($icon, icons.check); + case "selector": + if (item.selector && item.selector.length) (0, _utils.append)($icon, isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config); + else (0, _utils.append)($icon, icons.check); break; default: break; } - _utils.append($left, $icon); + (0, _utils.append)($left, $icon); item.$icon = $icon; - _utils.def(item, 'icon', { + (0, _utils.def)(item, "icon", { configurable: true, get () { return $icon.innerHTML; @@ -4507,12 +4416,12 @@ class Setting extends _componentDefault.default { if (isStringOrNumber(value)) $icon.innerHTML = value; } }); - const $html = document.createElement('div'); - _utils.addClass($html, 'art-setting-item-left-text'); - _utils.append($html, item.html || ''); - _utils.append($left, $html); + const $html = document.createElement("div"); + (0, _utils.addClass)($html, "art-setting-item-left-text"); + (0, _utils.append)($html, item.html || ""); + (0, _utils.append)($left, $html); item.$html = $html; - _utils.def(item, 'html', { + (0, _utils.def)(item, "html", { configurable: true, get () { return $html.innerHTML; @@ -4521,12 +4430,12 @@ class Setting extends _componentDefault.default { if (isStringOrNumber(value)) $html.innerHTML = value; } }); - const $tooltip = document.createElement('div'); - _utils.addClass($tooltip, 'art-setting-item-right-tooltip'); - _utils.append($tooltip, item.tooltip || ''); - _utils.append($right, $tooltip); + const $tooltip = document.createElement("div"); + (0, _utils.addClass)($tooltip, "art-setting-item-right-tooltip"); + (0, _utils.append)($tooltip, item.tooltip || ""); + (0, _utils.append)($right, $tooltip); item.$tooltip = $tooltip; - _utils.def(item, 'tooltip', { + (0, _utils.def)(item, "tooltip", { configurable: true, get () { return $tooltip.innerHTML; @@ -4536,16 +4445,16 @@ class Setting extends _componentDefault.default { } }); switch(type){ - case 'switch': + case "switch": { - const $state = document.createElement('div'); - _utils.addClass($state, 'art-setting-item-right-icon'); - const $switchOn = _utils.append($state, icons.switchOn); - const $switchOff = _utils.append($state, icons.switchOff); - _utils.setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none'); - _utils.append($right, $state); + const $state = document.createElement("div"); + (0, _utils.addClass)($state, "art-setting-item-right-icon"); + const $switchOn = (0, _utils.append)($state, icons.switchOn); + const $switchOff = (0, _utils.append)($state, icons.switchOff); + (0, _utils.setStyle)(item.switch ? $switchOff : $switchOn, "display", "none"); + (0, _utils.append)($right, $state); item.$switch = item.switch; - _utils.def(item, 'switch', { + (0, _utils.def)(item, "switch", { configurable: true, get () { return item.$switch; @@ -4553,29 +4462,29 @@ class Setting extends _componentDefault.default { set (value) { item.$switch = value; if (value) { - _utils.setStyle($switchOff, 'display', 'none'); - _utils.setStyle($switchOn, 'display', null); + (0, _utils.setStyle)($switchOff, "display", "none"); + (0, _utils.setStyle)($switchOn, "display", null); } else { - _utils.setStyle($switchOff, 'display', null); - _utils.setStyle($switchOn, 'display', 'none'); + (0, _utils.setStyle)($switchOff, "display", null); + (0, _utils.setStyle)($switchOn, "display", "none"); } } }); break; } - case 'range': + case "range": { - const $state = document.createElement('div'); - _utils.addClass($state, 'art-setting-item-right-icon'); - const $range = _utils.append($state, ''); + const $state = document.createElement("div"); + (0, _utils.addClass)($state, "art-setting-item-right-icon"); + const $range = (0, _utils.append)($state, ''); $range.value = item.range[0] || 0; $range.min = item.range[1] || 0; $range.max = item.range[2] || 10; $range.step = item.range[3] || 1; - _utils.addClass($range, 'art-setting-range'); - _utils.append($right, $state); + (0, _utils.addClass)($range, "art-setting-range"); + (0, _utils.append)($right, $state); item.$range = $range; - _utils.def(item, 'range', { + (0, _utils.def)(item, "range", { configurable: true, get () { return $range.valueAsNumber; @@ -4586,40 +4495,40 @@ class Setting extends _componentDefault.default { }); } break; - case 'selector': + case "selector": if (item.selector && item.selector.length) { - const $state = document.createElement('div'); - _utils.addClass($state, 'art-setting-item-right-icon'); - _utils.append($state, icons.arrowRight); - _utils.append($right, $state); + const $state = document.createElement("div"); + (0, _utils.addClass)($state, "art-setting-item-right-icon"); + (0, _utils.append)($state, icons.arrowRight); + (0, _utils.append)($right, $state); } break; default: break; } switch(type){ - case 'switch': + case "switch": if (item.onSwitch) { - const event1 = proxy($item, 'click', async (event)=>{ + const event1 = proxy($item, "click", async (event)=>{ item.switch = await item.onSwitch.call(this.art, item, $item, event); }); this.events.push(event1); } break; - case 'range': + case "range": if (item.onRange && item.$range) { - const event3 = proxy(item.$range, 'change', async (event)=>{ + const event3 = proxy(item.$range, "change", async (event)=>{ item.tooltip = await item.onRange.call(this.art, item, $item, event); }); this.events.push(event3); } break; - case 'selector': + case "selector": { - const event5 = proxy($item, 'click', async (event)=>{ + const event5 = proxy($item, "click", async (event)=>{ if (item.selector && item.selector.length) this.init(item.selector, item.width); else { - _utils.inverseClass($item, 'art-current'); + (0, _utils.inverseClass)($item, "art-current"); if (item.$parentList) this.init(item.$parentList); if (item.$parentItem && item.$parentItem.onSelect) { const result = await item.$parentItem.onSelect.call(this.art, item, $item, event); @@ -4628,7 +4537,7 @@ class Setting extends _componentDefault.default { } }); this.events.push(event5); - if (item.default) _utils.addClass($item, 'art-current'); + if (item.default) (0, _utils.addClass)($item, "art-current"); } break; default: @@ -4640,55 +4549,54 @@ class Setting extends _componentDefault.default { const { constructor } = this.art; if (this.cache.has(option)) { const $panel = this.cache.get(option); - _utils.inverseClass($panel, 'art-current'); - _utils.setStyle(this.$parent, 'width', `${$panel.dataset.width}px`); - _utils.setStyle(this.$parent, 'height', `${$panel.dataset.height}px`); + (0, _utils.inverseClass)($panel, "art-current"); + (0, _utils.setStyle)(this.$parent, "width", `${$panel.dataset.width}px`); + (0, _utils.setStyle)(this.$parent, "height", `${$panel.dataset.height}px`); } else { - const $panel = document.createElement('div'); - _utils.addClass($panel, 'art-setting-panel'); + const $panel = document.createElement("div"); + (0, _utils.addClass)($panel, "art-setting-panel"); $panel.dataset.width = width || constructor.SETTING_WIDTH; $panel.dataset.height = option.length * constructor.SETTING_ITEM_HEIGHT; if (option[0] && option[0].$parentItem) { - _utils.append($panel, this.creatHeader(option[0])); + (0, _utils.append)($panel, this.creatHeader(option[0])); $panel.dataset.height = Number($panel.dataset.height) + constructor.SETTING_ITEM_HEIGHT; } for(let index = 0; index < option.length; index++){ const item = option[index]; - if (_utils.has(item, 'switch')) _utils.append($panel, this.creatItem('switch', item)); - else if (_utils.has(item, 'range')) _utils.append($panel, this.creatItem('range', item)); - else _utils.append($panel, this.creatItem('selector', item)); + if ((0, _utils.has)(item, "switch")) (0, _utils.append)($panel, this.creatItem("switch", item)); + else if ((0, _utils.has)(item, "range")) (0, _utils.append)($panel, this.creatItem("range", item)); + else (0, _utils.append)($panel, this.creatItem("selector", item)); } - _utils.append(this.$parent, $panel); + (0, _utils.append)(this.$parent, $panel); this.cache.set(option, $panel); - _utils.inverseClass($panel, 'art-current'); - _utils.setStyle(this.$parent, 'width', `${$panel.dataset.width}px`); - _utils.setStyle(this.$parent, 'height', `${$panel.dataset.height}px`); + (0, _utils.inverseClass)($panel, "art-current"); + (0, _utils.setStyle)(this.$parent, "width", `${$panel.dataset.width}px`); + (0, _utils.setStyle)(this.$parent, "height", `${$panel.dataset.height}px`); if (option[0] && option[0].$parentItem && option[0].$parentItem.mounted) option[0].$parentItem.mounted.call(this.art, $panel, option[0].$parentItem); } } } exports.default = Setting; -},{"./flip":"cyEw6","./aspectRatio":"l7RGi","./playbackRate":"l9tWN","./subtitleOffset":"lQoyH","../utils/component":"1UWqI","../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"cyEw6":[function(require,module,exports) { +},{"./flip":"7rVpZ","./aspectRatio":"9hfUt","./playbackRate":"8RIYy","./subtitleOffset":"aVPfi","../utils/component":"bgug2","../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"7rVpZ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function flip(art) { const { i18n , icons , constructor } = art; const keys = { - normal: 'Normal', - horizontal: 'Horizontal', - vertical: 'Vertical' + normal: "Normal", + horizontal: "Horizontal", + vertical: "Vertical" }; function update($panel, $tooltip, value) { if ($tooltip) $tooltip.innerText = i18n.get(keys[value]); - const $current = _utils.queryAll('.art-setting-item', $panel).find((item)=>item.dataset.value === value - ); - if ($current) _utils.inverseClass($current, 'art-current'); + const $current = (0, _utils.queryAll)(".art-setting-item", $panel).find((item)=>item.dataset.value === value); + if ($current) (0, _utils.inverseClass)($current, "art-current"); } return { width: constructor.SETTING_ITEM_WIDTH, - html: i18n.get('Video Flip'), + html: i18n.get("Video Flip"), tooltip: i18n.get(keys[art.flip]), icon: icons.flip, selector: Object.keys(keys).map((item)=>{ @@ -4703,7 +4611,7 @@ function flip(art) { }, mounted: ($panel, item)=>{ update($panel, item.$tooltip, art.flip); - art.on('flip', ()=>{ + art.on("flip", ()=>{ update($panel, item.$tooltip, art.flip); }); } @@ -4711,30 +4619,29 @@ function flip(art) { } exports.default = flip; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"l7RGi":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9hfUt":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function aspectRatio(art) { const { i18n , icons , constructor } = art; function getI18n(value) { - return value === 'default' ? i18n.get('Default') : value; + return value === "default" ? i18n.get("Default") : value; } function update($panel, $tooltip, value) { if ($tooltip) $tooltip.innerText = getI18n(value); - const $current = _utils.queryAll('.art-setting-item', $panel).find((item)=>item.dataset.value === value - ); - if ($current) _utils.inverseClass($current, 'art-current'); + const $current = (0, _utils.queryAll)(".art-setting-item", $panel).find((item)=>item.dataset.value === value); + if ($current) (0, _utils.inverseClass)($current, "art-current"); } return { width: constructor.SETTING_ITEM_WIDTH, - html: i18n.get('Aspect Ratio'), + html: i18n.get("Aspect Ratio"), icon: icons.aspectRatio, tooltip: getI18n(art.aspectRatio), selector: [ - 'default', - '4:3', - '16:9' + "default", + "4:3", + "16:9" ].map((item)=>{ return { value: item, @@ -4747,7 +4654,7 @@ function aspectRatio(art) { }, mounted: ($panel, item)=>{ update($panel, item.$tooltip, art.aspectRatio); - art.on('aspectRatio', ()=>{ + art.on("aspectRatio", ()=>{ update($panel, item.$tooltip, art.aspectRatio); }); } @@ -4755,24 +4662,23 @@ function aspectRatio(art) { } exports.default = aspectRatio; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"l9tWN":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8RIYy":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function playbackRate(art) { const { i18n , icons , constructor } = art; function getI18n(value) { - return value === 1.0 ? i18n.get('Normal') : value; + return value === 1.0 ? i18n.get("Normal") : value; } function update($panel, $tooltip, value) { if ($tooltip) $tooltip.innerText = getI18n(value); - const $current = _utils.queryAll('.art-setting-item', $panel).find((item)=>Number(item.dataset.value) === value - ); - if ($current) _utils.inverseClass($current, 'art-current'); + const $current = (0, _utils.queryAll)(".art-setting-item", $panel).find((item)=>Number(item.dataset.value) === value); + if ($current) (0, _utils.inverseClass)($current, "art-current"); } return { width: constructor.SETTING_ITEM_WIDTH, - html: i18n.get('Play Speed'), + html: i18n.get("Play Speed"), tooltip: getI18n(art.playbackRate), icon: icons.playbackRate, selector: [ @@ -4794,7 +4700,7 @@ function playbackRate(art) { }, mounted: ($panel, item)=>{ update($panel, item.$tooltip, art.playbackRate); - art.on('playbackRate', ()=>{ + art.on("playbackRate", ()=>{ update($panel, item.$tooltip, art.playbackRate); }); } @@ -4802,24 +4708,23 @@ function playbackRate(art) { } exports.default = playbackRate; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"lQoyH":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aVPfi":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function subtitleOffset(art) { const { i18n , icons , constructor } = art; function getI18n(value) { - return value === 0 ? i18n.get('Normal') : value; + return value === 0 ? i18n.get("Normal") : value; } function update($panel, $tooltip, value) { if ($tooltip) $tooltip.innerText = getI18n(value); - const $current = _utils.queryAll('.art-setting-item', $panel).find((item)=>Number(item.dataset.value) === value - ); - if ($current) _utils.inverseClass($current, 'art-current'); + const $current = (0, _utils.queryAll)(".art-setting-item", $panel).find((item)=>Number(item.dataset.value) === value); + if ($current) (0, _utils.inverseClass)($current, "art-current"); } return { width: constructor.SETTING_ITEM_WIDTH, - html: i18n.get('Subtitle Offset'), + html: i18n.get("Subtitle Offset"), tooltip: getI18n(art.subtitleOffset), icon: icons.subtitle, selector: [ @@ -4846,7 +4751,7 @@ function subtitleOffset(art) { }, mounted: ($panel, item)=>{ update($panel, item.$tooltip, art.subtitleOffset); - art.on('subtitleOffset', ()=>{ + art.on("subtitleOffset", ()=>{ update($panel, item.$tooltip, art.subtitleOffset); }); } @@ -4854,12 +4759,12 @@ function subtitleOffset(art) { } exports.default = subtitleOffset; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"9ruid":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"feFxw":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); class Storage { constructor(){ - this.name = 'artplayer_settings'; + this.name = "artplayer_settings"; this.settings = {}; } get(key) { @@ -4899,7 +4804,7 @@ class Storage { } exports.default = Storage; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"7Fd4c":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"h1hfO":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -4918,19 +4823,19 @@ class Plugins { this.art = art; this.id = 0; const { option } = art; - if (option.miniProgressBar && !option.isLive) this.add(_miniProgressBarDefault.default); - if (option.lock && _utils.isMobile) this.add(_lockDefault.default); - if (option.autoPlayback) this.add(_autoPlaybackDefault.default); - if (option.autoOrientation && _utils.isMobile) this.add(_autoOrientationDefault.default); - if (option.fastForward && _utils.isMobile && !option.isLive) this.add(_fastForwardDefault.default); + if (option.miniProgressBar && !option.isLive) this.add((0, _miniProgressBarDefault.default)); + if (option.lock && (0, _utils.isMobile)) this.add((0, _lockDefault.default)); + if (option.autoPlayback) this.add((0, _autoPlaybackDefault.default)); + if (option.autoOrientation && (0, _utils.isMobile)) this.add((0, _autoOrientationDefault.default)); + if (option.fastForward && (0, _utils.isMobile) && !option.isLive) this.add((0, _fastForwardDefault.default)); for(let index = 0; index < option.plugins.length; index++)this.add(option.plugins[index]); } add(plugin) { this.id += 1; const result = plugin.call(this, this.art); const pluginName = result && result.name || plugin.name || `plugin${this.id}`; - _utils.errorHandle(!_utils.has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`); - _utils.def(this, pluginName, { + (0, _utils.errorHandle)(!(0, _utils.has)(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`); + (0, _utils.def)(this, pluginName, { value: result }); return this; @@ -4938,122 +4843,146 @@ class Plugins { } exports.default = Plugins; -},{"../utils":"euhMG","./miniProgressBar":"3al9F","./autoOrientation":"ocofD","./autoPlayback":"6aLII","./fastForward":"i0uB0","./lock":"cuQyc","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"3al9F":[function(require,module,exports) { +},{"../utils":"jmgNb","./miniProgressBar":"dMA6v","./autoOrientation":"aROGj","./autoPlayback":"kQ2fc","./fastForward":"fgbhT","./lock":"j2mDF","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"dMA6v":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function miniProgressBar(art) { - art.on('ready', ()=>{ + art.on("ready", ()=>{ art.layers.add({ - name: 'miniProgressBar', + name: "miniProgressBar", mounted ($progressBar) { - art.on('destroy', ()=>{ - $progressBar.style.display = 'none'; + art.on("destroy", ()=>{ + $progressBar.style.display = "none"; }); - art.on('video:timeupdate', ()=>{ + art.on("video:timeupdate", ()=>{ $progressBar.style.width = `${art.played * 100}%`; }); - art.on('setBar', (type, percentage)=>{ - if (type === 'played') $progressBar.style.width = `${percentage * 100}%`; + art.on("setBar", (type, percentage)=>{ + if (type === "played") $progressBar.style.width = `${percentage * 100}%`; }); } }); }); return { - name: 'miniProgressBar' + name: "miniProgressBar" }; } exports.default = miniProgressBar; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"ocofD":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"aROGj":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function autoOrientation(art) { const { option , constructor , template: { $player , $video } , } = art; - art.on('fullscreenWeb', (state)=>{ + art.on("fullscreenWeb", (state)=>{ if (state) { const { videoWidth , videoHeight } = $video; const { clientWidth: viewWidth , clientHeight: viewHeight } = document.documentElement; if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) // There is a conflict with the fullscreen event, and it is changed to asynchronous execution setTimeout(()=>{ - _utils.setStyle($player, 'width', `${viewHeight}px`); - _utils.setStyle($player, 'height', `${viewWidth}px`); - _utils.setStyle($player, 'transform-origin', '0 0'); - _utils.setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`); - _utils.addClass($player, 'art-auto-orientation'); - art.emit('resize'); + (0, _utils.setStyle)($player, "width", `${viewHeight}px`); + (0, _utils.setStyle)($player, "height", `${viewWidth}px`); + (0, _utils.setStyle)($player, "transform-origin", "0 0"); + (0, _utils.setStyle)($player, "transform", `rotate(90deg) translate(0, -${viewWidth}px)`); + (0, _utils.addClass)($player, "art-auto-orientation"); + art.emit("resize"); }, constructor.MOBILE_AUTO_ORIENTATION_TIME); - } else if (_utils.hasClass($player, 'art-auto-orientation')) { - _utils.setStyle($player, 'width', null); - _utils.setStyle($player, 'height', null); - _utils.setStyle($player, 'transform', null); - _utils.setStyle($player, 'transform-origin', null); - _utils.removeClass($player, 'art-auto-orientation'); + } else if ((0, _utils.hasClass)($player, "art-auto-orientation")) { + (0, _utils.setStyle)($player, "width", null); + (0, _utils.setStyle)($player, "height", null); + (0, _utils.setStyle)($player, "transform", null); + (0, _utils.setStyle)($player, "transform-origin", null); + (0, _utils.removeClass)($player, "art-auto-orientation"); art.aspectRatioReset = true; art.autoSize = option.autoSize; - art.notice.show = ''; - art.emit('resize'); + art.notice.show = ""; + art.emit("resize"); } }); - art.on('fullscreen', async (state)=>{ + art.on("fullscreen", async (state)=>{ const lastOrientation = screen.orientation.type; if (state) { const { videoWidth , videoHeight } = $video; const { clientWidth: viewWidth , clientHeight: viewHeight } = document.documentElement; if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) { - const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait'; + const oppositeOrientation = lastOrientation.startsWith("portrait") ? "landscape" : "portrait"; await screen.orientation.lock(oppositeOrientation); - _utils.addClass($player, 'art-auto-orientation-fullscreen'); + (0, _utils.addClass)($player, "art-auto-orientation-fullscreen"); } - } else if (_utils.hasClass($player, 'art-auto-orientation-fullscreen')) { + } else if ((0, _utils.hasClass)($player, "art-auto-orientation-fullscreen")) { await screen.orientation.lock(lastOrientation); - _utils.removeClass($player, 'art-auto-orientation-fullscreen'); + (0, _utils.removeClass)($player, "art-auto-orientation-fullscreen"); } }); return { - name: 'autoOrientation', + name: "autoOrientation", get state () { - return _utils.hasClass($player, 'art-auto-orientation'); + return (0, _utils.hasClass)($player, "art-auto-orientation"); } }; } exports.default = autoOrientation; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"6aLII":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"kQ2fc":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function autoPlayback(art) { - const { i18n , storage , constructor , template: { $poster } , } = art; - art.on('video:timeupdate', ()=>{ - const times = storage.get('times') || {}; + const { i18n , icons , storage , constructor , events: { proxy } , template: { $poster } , } = art; + const $autoPlayback = art.layers.add({ + name: "autoPlayback", + html: ` +
+
+
+ ` + }); + const $last = (0, _utils.query)(".art-autoPlayback-last", $autoPlayback); + const $jump = (0, _utils.query)(".art-autoPlayback-jump", $autoPlayback); + const $close = (0, _utils.query)(".art-autoPlayback-close", $autoPlayback); + art.on("video:timeupdate", ()=>{ + const times = storage.get("times") || {}; const keys = Object.keys(times); if (keys.length > constructor.AUTO_PLAYBACK_MAX) delete times[keys[0]]; times[art.option.url] = art.currentTime; - storage.set('times', times); + storage.set("times", times); }); - art.on('ready', ()=>{ - const times = storage.get('times') || {}; + art.on("ready", ()=>{ + const times = storage.get("times") || {}; const currentTime = times[art.option.url]; if (currentTime) { - art.seek = currentTime; - _utils.setStyle($poster, 'display', 'none'); - art.notice.show = `${i18n.get('Auto playback at')} ${_utils.secondToTime(currentTime)}`; + (0, _utils.append)($close, icons.close); + (0, _utils.setStyle)($autoPlayback, "display", "flex"); + $last.innerText = `${i18n.get("Last Seen")} ${(0, _utils.secondToTime)(currentTime)}`; + $jump.innerText = i18n.get("Jump Play"); + proxy($close, "click", ()=>{ + (0, _utils.setStyle)($autoPlayback, "display", "none"); + }); + proxy($jump, "click", ()=>{ + art.seek = currentTime; + art.play(); + (0, _utils.setStyle)($poster, "display", "none"); + (0, _utils.setStyle)($autoPlayback, "display", "none"); + }); + art.on("video:timeupdate", ()=>{ + (0, _utils.setStyle)($autoPlayback, "display", "none"); + }); } }); return { - name: 'autoPlayback', + name: "autoPlayback", get times () { - return storage.get('times') || {}; + return storage.get("times") || {}; }, clear () { - return storage.del('times'); + return storage.del("times"); } }; } exports.default = autoPlayback; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"i0uB0":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"fgbhT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); @@ -5065,7 +4994,7 @@ function fastForward(art) { if (event.touches.length === 1 && art.playing && !art.isLock) timer = setTimeout(()=>{ isPress = true; art.playbackRate = constructor.FAST_FORWARD_VALUE; - _utils.addClass($player, 'art-fast-forward'); + (0, _utils.addClass)($player, "art-fast-forward"); }, constructor.FAST_FORWARD_TIME); }; const onStop = ()=>{ @@ -5073,117 +5002,65 @@ function fastForward(art) { if (isPress) { isPress = false; art.playbackRate = 1; - _utils.removeClass($player, 'art-fast-forward'); + (0, _utils.removeClass)($player, "art-fast-forward"); } }; - proxy($video, 'touchstart', onStart); - proxy(document, 'touchmove', onStop); - proxy(document, 'touchend', onStop); + proxy($video, "touchstart", onStart); + proxy(document, "touchmove", onStop); + proxy(document, "touchend", onStop); return { - name: 'fastForward', + name: "fastForward", get state () { - return _utils.hasClass($player, 'art-fast-forward'); + return (0, _utils.hasClass)($player, "art-fast-forward"); } }; } exports.default = fastForward; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"cuQyc":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"j2mDF":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _utils = require("../utils"); function lock(art) { const { layers , icons , template: { $player } , } = art; layers.add({ - name: 'lock', + name: "lock", mounted ($el) { - const $lock = _utils.append($el, icons.lock); - const $unlock = _utils.append($el, icons.unlock); - _utils.setStyle($lock, 'display', 'none'); - art.on('lock', (state)=>{ + const $lock = (0, _utils.append)($el, icons.lock); + const $unlock = (0, _utils.append)($el, icons.unlock); + (0, _utils.setStyle)($lock, "display", "none"); + art.on("lock", (state)=>{ if (state) { - _utils.setStyle($lock, 'display', 'inline-flex'); - _utils.setStyle($unlock, 'display', 'none'); + (0, _utils.setStyle)($lock, "display", "inline-flex"); + (0, _utils.setStyle)($unlock, "display", "none"); } else { - _utils.setStyle($lock, 'display', 'none'); - _utils.setStyle($unlock, 'display', 'inline-flex'); + (0, _utils.setStyle)($lock, "display", "none"); + (0, _utils.setStyle)($unlock, "display", "inline-flex"); } }); }, click () { - if (_utils.hasClass($player, 'art-lock')) { - _utils.removeClass($player, 'art-lock'); + if ((0, _utils.hasClass)($player, "art-lock")) { + (0, _utils.removeClass)($player, "art-lock"); this.isLock = false; - art.emit('lock', false); + art.emit("lock", false); } else { - _utils.addClass($player, 'art-lock'); + (0, _utils.addClass)($player, "art-lock"); this.isLock = true; - art.emit('lock', true); + art.emit("lock", true); } } }); return { - name: 'lock', + name: "lock", get state () { - return _utils.hasClass($player, 'art-lock'); + return (0, _utils.hasClass)($player, "art-lock"); } }; } exports.default = lock; -},{"../utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"47pqz":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -class Ads { - constructor(art){ - this.art = art; - this.init(); - } - get current() { - return this.art.option.ads[this.index]; - } - get prev() { - return this.art.option.ads[this.index - 1]; - } - get next() { - return this.art.option.ads[this.index + 1]; - } - init() { - this.index = 0; - this.isEnd = false; - this.playing = false; - this.urlCache = this.art.option.url; - if (this.current) { - this.playing = true; - this.play(this.current); - } - } - play(item = {}) { - if (this.isEnd) return; - this.art.switchUrl(item.url); - this.art.once('video:timeupdate', ()=>{ - this.art.emit('ads:start', item); - }); - this.art.once('video:ended', ()=>{ - const next = this.next; - if (next) { - this.index += 1; - this.play(next); - } else this.end(); - }); - } - end() { - if (this.isEnd) return; - this.isEnd = true; - this.playing = false; - this.art.option.url = this.urlCache; - this.art.switchUrl(this.urlCache); - this.art.emit('ads:end'); - } -} -exports.default = Ads; - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}],"hMVZh":[function(require,module,exports) { +},{"../utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"c9n1Y":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _config = require("./config"); @@ -5192,33 +5069,33 @@ var _utils = require("./utils"); class Mobile { constructor(art){ const { option , events: { proxy } , template: { $video } , } = art; - for(let index = 0; index < _configDefault.default.events.length; index++)proxy($video, _configDefault.default.events[index], (event)=>{ + for(let index = 0; index < (0, _configDefault.default).events.length; index++)proxy($video, (0, _configDefault.default).events[index], (event)=>{ art.emit(`video:${event.type}`, event); }); Object.keys(option.moreVideoAttr).forEach((key)=>{ $video[key] = option.moreVideoAttr[key]; }); if (option.muted) $video.muted = option.muted; - if (option.volume) $video.volume = _utils.clamp(option.volume, 0, 1); + if (option.volume) $video.volume = (0, _utils.clamp)(option.volume, 0, 1); if (option.poster) $video.poster = option.poster; if (option.autoplay) $video.autoplay = option.autoplay; if (option.playsInline) { $video.playsInline = true; - $video['webkit-playsinline'] = true; + $video["webkit-playsinline"] = true; } - const typeName = option.type || _utils.getExt(option.url); + const typeName = option.type || (0, _utils.getExt)(option.url); const typeCallback = option.customType[typeName]; if (typeName && typeCallback) { typeCallback($video, option.url, art); - art.emit('customType', typeName); + art.emit("customType", typeName); } else { $video.src = option.url; - art.emit('url', $video.src); + art.emit("url", $video.src); } } } exports.default = Mobile; -},{"./config":"1hSww","./utils":"euhMG","@parcel/transformer-js/src/esmodule-helpers.js":"6SDkN"}]},["gEVO5"], "gEVO5", "parcelRequireb749") +},{"./config":"2ZnKD","./utils":"jmgNb","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}]},["eFv8l"], "eFv8l", "parcelRequire4dc0") //# sourceMappingURL=index.js.map diff --git a/docs/uncompiled/artplayer/index.js.map b/docs/uncompiled/artplayer/index.js.map index a4d79607c..efcda1a5c 100644 --- a/docs/uncompiled/artplayer/index.js.map +++ b/docs/uncompiled/artplayer/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["src/index.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-69e96c3fa7536383.js","node_modules/option-validator/dist/option-validator.js","src/utils/emitter.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js","src/utils/index.js","src/utils/dom.js","src/utils/compatibility.js","src/utils/error.js","src/utils/subtitle.js","src/utils/file.js","src/utils/property.js","src/utils/time.js","src/utils/format.js","src/scheme/index.js","src/config/index.js","src/whitelist.js","src/template.js","src/i18n/index.js","src/i18n/zh-cn.json","src/i18n/zh-tw.json","src/i18n/pl.json","src/i18n/cs.json","src/player/index.js","src/player/urlMix.js","src/player/attrMix.js","src/player/playMix.js","src/player/pauseMix.js","src/player/toggleMix.js","src/player/seekMix.js","src/player/volumeMix.js","src/player/currentTimeMix.js","src/player/durationMix.js","src/player/switchMix.js","src/player/playbackRateMix.js","src/player/aspectRatioMix.js","src/player/screenshotMix.js","src/player/fullscreenMix.js","src/libs/screenfull.js","src/player/fullscreenWebMix.js","src/player/pipMix.js","src/player/loadedMix.js","src/player/playedMix.js","src/player/playingMix.js","src/player/autoSizeMix.js","src/player/rectMix.js","src/player/flipMix.js","src/player/miniMix.js","src/player/loopMix.js","src/player/posterMix.js","src/player/autoHeightMix.js","src/player/themeMix.js","src/player/titleMix.js","src/player/normalSizeMix.js","src/player/subtitleOffsetMix.js","src/player/optionInit.js","src/player/eventInit.js","src/control/index.js","src/utils/component.js","src/control/fullscreen.js","src/control/fullscreenWeb.js","src/control/pip.js","src/control/playAndPause.js","src/control/progress.js","src/control/time.js","src/control/volume.js","src/control/setting.js","src/control/thumbnails.js","src/control/screenshot.js","src/control/quality.js","src/control/loop.js","src/contextmenu/index.js","src/contextmenu/playbackRate.js","src/contextmenu/aspectRatio.js","src/contextmenu/flip.js","src/contextmenu/info.js","src/contextmenu/version.js","src/contextmenu/close.js","src/info.js","src/subtitle.js","src/events/index.js","src/events/clickInit.js","src/events/hoverInit.js","src/events/mousemoveInit.js","src/events/resizeInit.js","src/events/gestureInit.js","src/events/viewInit.js","src/hotkey.js","src/layer.js","src/loading.js","src/notice.js","src/mask.js","src/icons/index.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-ecdbf838d74e57be.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-54153e61fb5bb59e.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-acd9c8a15e5af94e.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-4a1a1b2a0b6fbf4b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-0b713ca3133ce605.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-89c8adbbaba362ee.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-78d03e4d67adcefe.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-83e079c6ec1651fb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-41b1c8dc2901aa37.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-9d1d2012e3785443.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-b19b3963900f7fad.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-58aa657e426937b1.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a814886828c89b2f.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-b7f6071f9505bc10.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e15fde0582bfd9f7.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-36a8bda2492ab98f.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-b49d00c3cf63eb04.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-eba160473d5b22bb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-157bffb3dfbca2dd.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-2430dce770288e00.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-3372f0db6fb5622f.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-7859caf7292d907e.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d246b61545406f36.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a196bd512ee60009.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-f25e38cc9707a31c.js","src/setting/index.js","src/setting/flip.js","src/setting/aspectRatio.js","src/setting/playbackRate.js","src/setting/subtitleOffset.js","src/storage.js","src/plugins/index.js","src/plugins/miniProgressBar.js","src/plugins/autoOrientation.js","src/plugins/autoPlayback.js","src/plugins/fastForward.js","src/plugins/lock.js","src/ads.js","src/mobile.js"],"sourcesContent":["import style from 'bundle-text:./style/index.less';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Ads from './ads';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option, readyCallback) {\n super();\n\n this.id = ++id;\n\n const mergeOption = utils.mergeDeep(Artplayer.option, option);\n this.option = validator(mergeOption, scheme);\n\n this.isLock = false;\n this.isReady = false;\n this.isFocus = false;\n this.isInput = false;\n this.isDestroy = false;\n\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.ads = new Ads(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this));\n }\n\n instances.push(this);\n }\n\n static get instances() {\n return instances;\n }\n\n static get version() {\n return process.env.APP_VER;\n }\n\n static get env() {\n return process.env.NODE_ENV;\n }\n\n static get build() {\n return process.env.BUILD_DATE;\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n type: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: false,\n autoMini: false,\n loop: false,\n flip: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n useSSR: false,\n playsInline: true,\n lock: false,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n ads: [],\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n encoding: 'utf-8',\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n get proxy() {\n return this.events.proxy;\n }\n\n get query() {\n return this.template.query;\n }\n\n destroy(removeHtml = true) {\n this.events.destroy();\n this.template.destroy(removeHtml);\n instances.splice(instances.indexOf(this), 1);\n this.isDestroy = true;\n this.emit('destroy');\n }\n}\n\nArtplayer.NOTICE_TIME = 2000;\nArtplayer.SETTING_WIDTH = 250;\nArtplayer.SETTING_ITEM_WIDTH = 200;\nArtplayer.SETTING_ITEM_HEIGHT = 35;\nArtplayer.INDICATOR_SIZE = 14;\nArtplayer.INDICATOR_SIZE_ICON = 16;\nArtplayer.INDICATOR_SIZE_MOBILE = 18;\nArtplayer.INDICATOR_SIZE_MOBILE_ICON = 20;\nArtplayer.VOLUME_PANEL_WIDTH = 60;\nArtplayer.VOLUME_HANDLE_WIDTH = 12;\nArtplayer.RESIZE_TIME = 500;\nArtplayer.SCROLL_TIME = 200;\nArtplayer.SCROLL_GAP = 50;\nArtplayer.AUTO_PLAYBACK_MAX = 10;\nArtplayer.RECONNECT_TIME_MAX = 5;\nArtplayer.RECONNECT_SLEEP_TIME = 1000;\nArtplayer.CONTROL_HIDE_TIME = 3000;\nArtplayer.DB_CLICE_TIME = 300;\nArtplayer.MOBILE_AUTO_PLAYBACKRATE = 3;\nArtplayer.MOBILE_AUTO_PLAYBACKRATE_TIME = 1000;\nArtplayer.MOBILE_AUTO_ORIENTATION_TIME = 200;\nArtplayer.INFO_LOOP_TIME = 1000;\nArtplayer.FAST_FORWARD_VALUE = 3;\nArtplayer.FAST_FORWARD_TIME = 1000;\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-style')) {\n const $style = document.createElement('style');\n $style.id = 'artplayer-style';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n\nif (typeof window !== 'undefined') {\n window['Artplayer'] = Artplayer;\n}\n\n// eslint-disable-next-line no-console\nconsole.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n","module.exports = \"2863152d1da16a13\";","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'top') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\n\nexport function isInViewport(el, offset = 0) {\n const rect = el.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n const vertInView = rect.top - offset <= windowHeight && rect.top + rect.height + offset >= 0;\n const horInView = rect.left - offset <= windowWidth + offset && rect.left + rect.width + offset >= 0;\n return vertInView && horInView;\n}\n\nexport function includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\n\nexport function replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\n","export const userAgent = typeof window !== 'undefined' ? window.navigator.userAgent : '';\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent);\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexport const isWechat = /MicroMessenger/i.test(userAgent);\nexport const isIE = /MSIE|Trident/i.test(userAgent);\nexport const isAndroid = /android/i.test(userAgent);\nexport const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\n","export class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n return condition;\n}\n","function fixSrt(srt) {\n return srt.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g, (_, $1, $2) => {\n let ms = $2.slice(0, 3);\n if ($2.length === 1) {\n ms = $2 + '00';\n }\n if ($2.length === 2) {\n ms = $2 + '0';\n }\n return `${$1},${ms}`;\n });\n}\n\nexport function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n fixSrt(srtText)\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .replace(/{[\\s\\S]*?}/g, '')\n .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map((line) => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map((item) => item.trim())\n .join('\\n'),\n };\n })\n .filter((line) => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter((line) => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = (item) => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","import { errorHandle } from '../utils';\n\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === s || type === n || value instanceof Element,\n `${paths.join('.')} require '${s}' or 'Element' type`,\n );\n}\n\nexport const ComponentOption = {\n html: validElement,\n disable: `?${b}`,\n name: `?${s}`,\n index: `?${n}`,\n style: `?${o}`,\n click: `?${f}`,\n mounted: `?${f}`,\n tooltip: `?${s}|${n}`,\n width: `?${n}`,\n selector: `?${a}`,\n onSelect: `?${f}`,\n switch: `?${b}`,\n onSwitch: `?${f}`,\n range: `?${a}`,\n onRange: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: s,\n type: s,\n theme: s,\n lang: s,\n volume: n,\n isLive: b,\n muted: b,\n autoplay: b,\n autoSize: b,\n autoMini: b,\n loop: b,\n flip: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n useSSR: b,\n playsInline: b,\n lock: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n ads: [\n {\n url: s,\n },\n ],\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [ComponentOption],\n contextmenu: [ComponentOption],\n settings: [ComponentOption],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths) => {\n const position = ['top', 'left', 'right'];\n return errorHandle(\n position.includes(value),\n `${paths.join('.')} only accept ${position.toString()} as parameters`,\n );\n },\n },\n ],\n quality: [\n {\n default: `?${b}`,\n html: s,\n url: s,\n },\n ],\n highlight: [\n {\n time: n,\n text: s,\n },\n ],\n thumbnails: {\n url: s,\n number: n,\n column: n,\n },\n subtitle: {\n url: s,\n type: s,\n style: o,\n encoding: s,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","import { userAgent, isMobile } from './utils';\n\nexport default class Whitelist {\n constructor(art) {\n this.art = art;\n }\n\n get state() {\n const {\n option,\n constructor: { kindOf },\n } = this.art;\n\n return (\n !isMobile ||\n option.whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || userAgent.indexOf(item) > -1;\n case 'function':\n return item(userAgent);\n case 'regexp':\n return item.test(userAgent);\n default:\n return false;\n }\n })\n );\n }\n}\n","import { errorHandle, query, addClass, replaceElement, isMobile } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n const { option, constructor, whitelist } = art;\n\n if (option.container instanceof Element) {\n this.$container = option.container;\n } else {\n this.$container = query(option.container);\n errorHandle(this.$container, `No container element found by ${option.container}`);\n }\n\n const type = this.$container.tagName.toLowerCase();\n errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n\n errorHandle(\n constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.$original = this.$container.cloneNode(true);\n\n if (whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
${process.env.APP_VER}
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n
×
\n
\n
\n
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { option } = this.art;\n\n if (!option.useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsCenter = this.query('.art-controls-center');\n this.$controlsRight = this.query('.art-controls-right');\n this.$layer = this.query('.art-layers');\n this.$loading = this.query('.art-loading');\n this.$notice = this.query('.art-notice');\n this.$noticeInner = this.query('.art-notice-inner');\n this.$mask = this.query('.art-mask');\n this.$state = this.query('.art-state');\n this.$setting = this.query('.art-settings');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n if (option.backdrop) {\n addClass(this.$setting, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n addClass(this.$info, 'art-backdrop-filter');\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(removeHtml) {\n if (removeHtml) {\n replaceElement(this.$original, this.$container);\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn.json';\nimport zhTw from './zh-tw.json';\nimport pl from './pl.json';\nimport cs from './cs.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n 'pl': pl,\n 'cs': cs,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","{\n \"Video Info\": \"统计信息\",\n \"Close\": \"关闭\",\n \"Video Load Failed\": \"加载失败\",\n \"Volume\": \"音量\",\n \"Play\": \"播放\",\n \"Pause\": \"暂停\",\n \"Rate\": \"速度\",\n \"Mute\": \"静音\",\n \"Video Flip\": \"画面翻转\",\n \"Horizontal\": \"水平\",\n \"Vertical\": \"垂直\",\n \"Reconnect\": \"重新连接\",\n \"Show Setting\": \"显示设置\",\n \"Hide Setting\": \"隐藏设置\",\n \"Screenshot\": \"截图\",\n \"Play Speed\": \"播放速度\",\n \"Aspect Ratio\": \"画面比例\",\n \"Default\": \"默认\",\n \"Normal\": \"正常\",\n \"Open\": \"打开\",\n \"Switch Video\": \"切换\",\n \"Switch Subtitle\": \"切换字幕\",\n \"Fullscreen\": \"全屏\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Web Fullscreen\": \"网页全屏\",\n \"Exit Web Fullscreen\": \"退出网页全屏\",\n \"Mini Player\": \"迷你播放器\",\n \"PIP Mode\": \"开启画中画\",\n \"Exit PIP Mode\": \"退出画中画\",\n \"PIP Not Supported\": \"不支持画中画\",\n \"Fullscreen Not Supported\": \"不支持全屏\",\n \"Subtitle Offset\": \"字幕偏移\",\n \"Auto playback at\": \"已为您定位至\"\n}","{\n \"Video Info\": \"統計訊息\",\n \"Close\": \"關閉\",\n \"Video Load Failed\": \"載入失敗\",\n \"Volume\": \"音量\",\n \"Play\": \"播放\",\n \"Pause\": \"暫停\",\n \"Rate\": \"速度\",\n \"Mute\": \"靜音\",\n \"Video Flip\": \"畫面翻轉\",\n \"Horizontal\": \"水平\",\n \"Vertical\": \"垂直\",\n \"Reconnect\": \"重新連接\",\n \"Show Setting\": \"顯示设置\",\n \"Hide Setting\": \"隱藏设置\",\n \"Screenshot\": \"截圖\",\n \"Play Speed\": \"播放速度\",\n \"Aspect Ratio\": \"畫面比例\",\n \"Default\": \"默認\",\n \"Normal\": \"正常\",\n \"Open\": \"打開\",\n \"Switch Video\": \"切換\",\n \"Switch Subtitle\": \"切換字幕\",\n \"Fullscreen\": \"全屏\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Web Fullscreen\": \"網頁全屏\",\n \"Exit Web Fullscreen\": \"退出網頁全屏\",\n \"Mini Player\": \"迷你播放器\",\n \"PIP Mode\": \"開啟畫中畫\",\n \"Exit PIP Mode\": \"退出畫中畫\",\n \"PIP Not Supported\": \"不支持畫中畫\",\n \"Fullscreen Not Supported\": \"不支持全屏\",\n \"Subtitle Offset\": \"字幕偏移\",\n \"Auto playback at\": \"已為您定位至\"\n}","{\n \"Video Info\": \"Informacje o wideo\",\n \"Close\": \"Zamknij\",\n \"Video Load Failed\": \"Błąd ładowania wideo\",\n \"Volume\": \"Głośność\",\n \"Play\": \"Odtwórz\",\n \"Pause\": \"Wstrzymaj\",\n \"Rate\": \"Oceń\",\n \"Mute\": \"Wycisz\",\n \"Video Flip\": \"Rotacja wideo\",\n \"Horizontal\": \"Pozioma\",\n \"Vertical\": \"Pionowa\",\n \"Reconnect\": \"Połącz ponownie\",\n \"Show Setting\": \"Pokaż ustawienia\",\n \"Hide Setting\": \"Ukryj ustawienia\",\n \"Screenshot\": \"Zrzut ekranu\",\n \"Play Speed\": \"Prędkość odtwarzania\",\n \"Aspect Ratio\": \"Współczynnik proporcji\",\n \"Default\": \"Domyślny\",\n \"Normal\": \"Normalny\",\n \"Open\": \"Otwórz\",\n \"Switch Video\": \"Przełącz wideo\",\n \"Switch Subtitle\": \"Przełącz napisy\",\n \"Fullscreen\": \"Pełny ekran\",\n \"Exit Fullscreen\": \"Zamknij pełny ekran\",\n \"Web Fullscreen\": \"Tryb pełnej strony\",\n \"Exit Web Fullscreen\": \"Zamknij tryb pełnej strony\",\n \"Mini Player\": \"Miniodtwarzacz\",\n \"PIP Mode\": \"Tryb PiP\",\n \"Exit PIP Mode\": \"Zamknij tryb PiP\",\n \"PIP Not Supported\": \"Tryb PiP nieobsługiwany\",\n \"Fullscreen Not Supported\": \"Pełny ekran nieobsługiwany\",\n \"Subtitle Offset\": \"Przesunięcie napisów\",\n \"Auto playback at\": \"Automatyczne odtwarzanie za\"\n}","{\n \"Video Info\": \"Info o videu\",\n \"Close\": \"Zavřít\",\n \"Video Load Failed\": \"Nahrání videa selhalo\",\n \"Volume\": \"Hlasitost\",\n \"Play\": \"Přehrát\",\n \"Pause\": \"Pozastavit\",\n \"Rate\": \"Hodnocení\",\n \"Mute\": \"Ztlumit\",\n \"Video Flip\": \"Otočit video\",\n \"Horizontal\": \"Horizontálně\",\n \"Vertical\": \"Vertikálně\",\n \"Reconnect\": \"Opětovné připojení\",\n \"Show Setting\": \"Zobrazit nastavení\",\n \"Hide Setting\": \"Skrýt nastavení\",\n \"Screenshot\": \"Snímek obrazovky\",\n \"Play Speed\": \"Rychlost přehrávání\",\n \"Aspect Ratio\": \"Poměr stran\",\n \"Default\": \"Výchozí\",\n \"Normal\": \"Normální\",\n \"Open\": \"Otevřít\",\n \"Switch Video\": \"Přepnout video\",\n \"Switch Subtitle\": \"Přepnout titulky\",\n \"Fullscreen\": \"Celá obrazovka\",\n \"Exit Fullscreen\": \"Opustit režim celé obrazovky\",\n \"Web Fullscreen\": \"Celá stránka\",\n \"Exit Web Fullscreen\": \"Zavřít režim celé stránky\",\n \"Mini Player\": \"Mini přehrávač\",\n \"PIP Mode\": \"Režim PIP\",\n \"Exit PIP Mode\": \"Opustit režim PIP\",\n \"PIP Not Supported\": \"Režim PIP není podporován\",\n \"Fullscreen Not Supported\": \"Režim celé obrazovky není podporován\",\n \"Subtitle Offset\": \"Posun titulků\",\n \"Auto playback at\": \"Automatické přehrávání za\"\n}","import urlMix from './urlMix';\nimport attrMix from './attrMix';\nimport playMix from './playMix';\nimport pauseMix from './pauseMix';\nimport toggleMix from './toggleMix';\nimport seekMix from './seekMix';\nimport volumeMix from './volumeMix';\nimport currentTimeMix from './currentTimeMix';\nimport durationMix from './durationMix';\nimport switchMix from './switchMix';\nimport playbackRateMix from './playbackRateMix';\nimport aspectRatioMix from './aspectRatioMix';\nimport screenshotMix from './screenshotMix';\nimport fullscreenMix from './fullscreenMix';\nimport fullscreenWebMix from './fullscreenWebMix';\nimport pipMix from './pipMix';\nimport loadedMix from './loadedMix';\nimport playedMix from './playedMix';\nimport playingMix from './playingMix';\nimport autoSizeMix from './autoSizeMix';\nimport rectMix from './rectMix';\nimport flipMix from './flipMix';\nimport miniMix from './miniMix';\nimport loopMix from './loopMix';\nimport posterMix from './posterMix';\nimport autoHeightMix from './autoHeightMix';\nimport themeMix from './themeMix';\nimport titleMix from './titleMix';\nimport normalSizeMix from './normalSizeMix';\nimport subtitleOffsetMix from './subtitleOffsetMix';\nimport optionInit from './optionInit';\nimport eventInit from './eventInit';\n\nexport default class Player {\n constructor(art) {\n urlMix(art);\n attrMix(art);\n playMix(art);\n pauseMix(art);\n toggleMix(art);\n seekMix(art);\n volumeMix(art);\n currentTimeMix(art);\n durationMix(art);\n switchMix(art);\n playbackRateMix(art);\n aspectRatioMix(art);\n screenshotMix(art);\n fullscreenMix(art);\n fullscreenWebMix(art);\n pipMix(art);\n loadedMix(art);\n playedMix(art);\n playingMix(art);\n autoSizeMix(art);\n rectMix(art);\n flipMix(art);\n miniMix(art);\n loopMix(art);\n posterMix(art);\n autoHeightMix(art);\n themeMix(art);\n titleMix(art);\n normalSizeMix(art);\n subtitleOffsetMix(art);\n eventInit(art);\n optionInit(art);\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(art, 'url', {\n get() {\n return $video.currentSrc;\n },\n async set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n await sleep();\n art.loading.show = true;\n typeCallback.call(art, $video, url, art);\n } else {\n if (art.url && art.url !== url) {\n art.once('video:canplay', () => {\n if (art.isReady) {\n art.emit('restart');\n }\n });\n }\n\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function attrMix(art) {\n const {\n template: { $video },\n } = art;\n\n def(art, 'attr', {\n value(key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art) {\n const {\n i18n,\n notice,\n option,\n constructor: { instances },\n template: { $video },\n } = art;\n\n def(art, 'play', {\n value() {\n const promise = $video.play();\n\n if (promise && promise.then) {\n promise.then().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n\n if (option.mutex) {\n for (let index = 0; index < instances.length; index++) {\n const instance = instances[index];\n if (instance !== art) {\n instance.pause();\n }\n }\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n\n return promise;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'pause', {\n value() {\n const result = $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art) {\n def(art, 'toggle', {\n value() {\n if (art.playing) {\n return art.pause();\n } else {\n return art.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art) {\n const { notice } = art;\n\n def(art, 'seek', {\n set(time) {\n art.currentTime = time;\n art.emit('seek', art.currentTime);\n if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n }\n },\n });\n\n def(art, 'forward', {\n set(time) {\n art.seek = art.currentTime + time;\n },\n });\n\n def(art, 'backward', {\n set(time) {\n art.seek = art.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(art, 'volume', {\n get: () => $video.volume || 0,\n set: (percentage) => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art) {\n const { $video } = art.template;\n\n def(art, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = clamp(time, 0, art.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art) {\n def(art, 'duration', {\n get: () => {\n const { duration } = art.template.$video;\n if (duration === Infinity) return 0;\n return duration || 0;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function switchMix(art) {\n const { i18n, option, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n return new Promise((resolve) => {\n if (url === art.url) return resolve(url);\n const { playing } = art;\n art.pause();\n URL.revokeObjectURL(art.url);\n art.url = url;\n art.once('video:canplay', () => {\n art.playbackRate = false;\n art.aspectRatio = false;\n art.flip = 'normal';\n art.autoSize = option.autoSize;\n art.currentTime = currentTime;\n art.notice.show = '';\n if (playing) {\n art.play();\n }\n if (name) {\n notice.show = `${i18n.get('Switch Video')}: ${name}`;\n }\n art.emit('switch', url);\n resolve(url);\n });\n });\n }\n\n def(art, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, art.currentTime);\n },\n });\n\n def(art, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'playbackRate', {\n get() {\n return $video.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $video.playbackRate) return;\n const rateList = [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 3.0, 4.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else {\n art.playbackRate = 1;\n art.emit('playbackRate');\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || 'default';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':').map(Number);\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(art, 'aspectRatioReset', {\n set(value) {\n if (value) {\n const { aspectRatio } = art;\n art.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(art, 'getDataURL', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n resolve($canvas.toDataURL('image/png'));\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'getBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n $canvas.toBlob((blob) => {\n resolve(URL.createObjectURL(blob));\n });\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'screenshot', {\n value: async () => {\n const dataUri = await art.getDataURL();\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n },\n });\n}\n","import getScreenfull from '../libs/screenfull';\nimport { addClass, removeClass, def, get } from '../utils';\n\nexport default function fullscreenMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art;\n\n const screenfull = getScreenfull();\n\n const nativeScreenfull = (art) => {\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n async set(value) {\n if (value) {\n art.normalSize = 'fullscreen';\n art.aspectRatioReset = true;\n art.autoSize = false;\n await screenfull.request($player);\n addClass($player, 'art-fullscreen');\n art.emit('resize');\n art.emit('fullscreen', true);\n notice.show = '';\n } else {\n art.aspectRatioReset = true;\n art.autoSize = art.option.autoSize;\n await screenfull.exit();\n removeClass($player, 'art-fullscreen');\n art.emit('resize');\n art.emit('fullscreen');\n notice.show = '';\n }\n },\n });\n };\n\n const webkitScreenfull = (art) => {\n def(art, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n art.normalSize = 'fullscreen';\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n notice.show = '';\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n notice.show = '';\n }\n },\n });\n };\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art);\n } else {\n def(art, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen Not Supported');\n },\n });\n }\n\n // Asynchronous setting\n def(art, 'fullscreen', get(art, 'fullscreen'));\n });\n}\n","// https://github.com/sindresorhus/screenfull@6.0.1\n\nexport default function getScreenfull() {\n const methodMap = [\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror',\n ],\n // New WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n // Old WebKit\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror',\n ],\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError',\n ],\n ];\n\n const nativeAPI = (() => {\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n\n for (const methodList of methodMap) {\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries()) {\n returnValue[unprefixedMethods[index]] = method;\n }\n\n return returnValue;\n }\n }\n\n return false;\n })();\n\n const eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n };\n\n let screenfull = {\n // eslint-disable-next-line default-param-last\n request(element = document.documentElement, options) {\n return new Promise((resolve, reject) => {\n const onFullScreenEntered = () => {\n screenfull.off('change', onFullScreenEntered);\n resolve();\n };\n\n screenfull.on('change', onFullScreenEntered);\n\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit() {\n return new Promise((resolve, reject) => {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n\n const onFullScreenExit = () => {\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n\n screenfull.on('change', onFullScreenExit);\n\n const returnPromise = document[nativeAPI.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n },\n onchange(callback) {\n screenfull.on('change', callback);\n },\n onerror(callback) {\n screenfull.on('error', callback);\n },\n on(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.addEventListener(eventName, callback, false);\n }\n },\n off(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.removeEventListener(eventName, callback, false);\n }\n },\n raw: nativeAPI,\n };\n\n Object.defineProperties(screenfull, {\n isFullscreen: {\n get: () => Boolean(document[nativeAPI.fullscreenElement]),\n },\n element: {\n enumerable: true,\n get: () => document[nativeAPI.fullscreenElement],\n },\n isEnabled: {\n enumerable: true,\n // Coerce to boolean in case of old WebKit.\n get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n });\n\n if (!nativeAPI) {\n screenfull = { isEnabled: false };\n }\n\n return screenfull;\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art) {\n const {\n notice,\n template: { $player },\n } = art;\n\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n art.normalSize = 'fullscreenWeb';\n addClass($player, 'art-fullscreen-web');\n art.aspectRatioReset = true;\n art.autoSize = false;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n notice.show = '';\n } else {\n removeClass($player, 'art-fullscreen-web');\n art.aspectRatioReset = true;\n art.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n notice.show = '';\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(art, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n art.normalSize = 'pip';\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(art, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n art.normalSize = 'pip';\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art);\n } else {\n def(art, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP Not Supported');\n },\n });\n }\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art) {\n const { $video } = art.template;\n\n def(art, 'loaded', {\n get: () => art.loadedTime / $video.duration,\n });\n\n def(art, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art) {\n def(art, 'played', {\n get: () => art.currentTime / art.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art) {\n const { $video } = art.template;\n def(art, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art) {\n const { $container, $player, $video } = art.template;\n\n def(art, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n const keys = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n def(art, key, {\n get: () => {\n return art.rect[key];\n },\n });\n }\n\n def(art, 'x', {\n get: () => {\n return art.left + window.pageXOffset;\n },\n });\n\n def(art, 'y', {\n get: () => {\n return art.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'flip', {\n get() {\n return $player.dataset.flip || 'normal';\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = art.left;\n lastPlayerTop = art.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n art.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini Player'));\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n art.normalSize = 'mini';\n art.autoSize = false;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n art.mini = true;\n }\n } else {\n const top = window.innerHeight - art.height - 50;\n const left = window.innerWidth - art.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n art.aspectRatio = false;\n art.playbackRate = false;\n art.notice.show = '';\n art.emit('mini', true);\n } else {\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n art.aspectRatio = false;\n art.playbackRate = false;\n art.autoSize = option.autoSize;\n art.notice.show = '';\n art.emit('mini');\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMix(art) {\n let interval = [];\n def(art, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], art.duration));\n const end = clamp(value[1], start, art.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (art.currentTime < interval[0] || art.currentTime > interval[1]) {\n art.seek = interval[0];\n }\n }\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(art, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import { setStyle, hasClass, addClass, removeClass, def } from '../utils';\n\nexport default function autoHeightMix(art) {\n const {\n option,\n template: { $container, $video },\n } = art;\n\n const heightCache = $container.style.height;\n\n def(art, 'autoHeight', {\n get() {\n return hasClass($container, 'art-auto-height');\n },\n set(value) {\n if (value) {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n setStyle($container, 'height', height + 'px');\n addClass($container, 'art-auto-height');\n art.autoSize = option.autoSize;\n art.emit('autoHeight', height);\n } else {\n setStyle($container, 'height', heightCache);\n removeClass($container, 'art-auto-height');\n art.autoSize = option.autoSize;\n art.emit('autoHeight');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function themeMix(art) {\n const {\n option,\n template: { $player },\n } = art;\n\n def(art, 'theme', {\n get() {\n return getComputedStyle($player).getPropertyValue('--theme');\n },\n set(theme) {\n option.theme = theme;\n $player.style.setProperty('--theme', theme);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function titleMix(art) {\n def(art, 'title', {\n get() {\n return art.option.title;\n },\n set(title) {\n art.option.title = title;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function normalSizeMix(art) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb'];\n\n def(art, 'normalSize', {\n get() {\n return sizeProps.every((name) => !art[name]);\n },\n set(name) {\n sizeProps\n .filter((item) => item !== name)\n .forEach((item) => {\n if (art[item]) {\n art[item] = false;\n }\n });\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function subtitleOffsetMix(art) {\n const { clamp } = art.constructor.utils;\n const { notice, template, i18n } = art;\n\n let offsetCache = 0;\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n def(art, 'subtitleOffset', {\n get() {\n return offsetCache;\n },\n set(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n offsetCache = clamp(value, -5, 5);\n\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index];\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + offsetCache, 0, art.duration);\n cue.endTime = clamp(cuesCache[index].endTime + offsetCache, 0, art.duration);\n }\n\n art.subtitle.update();\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n art.emit('subtitleOffset', 0);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n art.attr(key, option.moreVideoAttr[key]);\n });\n\n if (option.muted) {\n art.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') {\n $video.volume = clamp(volumeStorage, 0, 1);\n }\n\n if (option.poster) {\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n if (option.theme) {\n art.theme = option.theme;\n }\n\n if (option.ads.length === 0) {\n art.url = option.url;\n }\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle, isMobile } from '../utils';\n\nexport default function eventInit(art) {\n const {\n i18n,\n notice,\n option,\n constructor,\n events: { proxy },\n template: { $player, $video, $poster },\n } = art;\n\n let reconnectTime = 0;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n // art.on('video:abort', () => {\n\n // });\n\n art.on('video:canplay', () => {\n reconnectTime = 0;\n art.loading.show = false;\n });\n\n art.once('video:canplay', () => {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n art.isReady = true;\n art.emit('ready');\n });\n\n // art.on('video:canplaythrough', () => {\n\n // });\n\n // art.on('video:durationchange', () => {\n\n // });\n\n // art.on('video:emptied', () => {\n\n // });\n\n art.on('video:ended', () => {\n if (option.loop) {\n art.seek = 0;\n art.play();\n art.controls.show = false;\n art.mask.show = false;\n } else {\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:error', async () => {\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n reconnectTime += 1;\n art.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n } else {\n art.mask.show = true;\n art.loading.show = false;\n art.controls.show = true;\n addClass($player, 'art-error');\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n art.destroy(false);\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.autoSize = option.autoSize;\n if (isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:loadstart', () => {\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n\n // art.on('video:stalled', () => {\n\n // });\n\n // art.on('video:suspend', () => {\n\n // });\n\n art.on('video:timeupdate', () => {\n art.mask.show = false;\n });\n\n // art.on('video:volumechange', () => {\n\n // });\n\n art.on('video:waiting', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n","import { errorHandle, addClass, removeClass, isMobile } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n constructor,\n events: { proxy },\n template: { $player },\n } = art;\n\n let activeTime = Date.now();\n\n proxy($player, ['click', 'mousemove', 'touchstart', 'touchmove'], () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n activeTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (!art.isInput && art.playing && this.show && Date.now() - activeTime >= constructor.CONTROL_HIDE_TIME) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n this.init();\n }\n\n init() {\n const { option } = this.art;\n\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive || isMobile,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot || isMobile,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 60,\n }),\n );\n\n for (let index = 0; index < option.controls.length; index++) {\n this.add(option.controls[index]);\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle, inverseClass } from './dom';\nimport validator from 'option-validator';\nimport { ComponentOption } from '../scheme';\nimport { has, def } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n validator(option, ComponentOption);\n\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n\n def(this, name, {\n value: $ref,\n });\n\n return $ref;\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector\n .map(\n (item, index) =>\n `
${\n item.html\n }
`,\n )\n .join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n const left = getStyle($ref, 'width') / 2 - getStyle($list, 'width') / 2;\n $list.style.left = `${left}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($list, 'click', async (event) => {\n const path = event.composedPath() || [];\n const $item = path.find((item) => hasClass(item, 'art-selector-item'));\n if (!$item) return;\n inverseClass($item, 'art-current');\n const index = Number($item.dataset.index);\n const find = option.selector[index] || {};\n $value.innerText = $item.innerText;\n if (option.onSelect) {\n const result = await option.onSelect.call(this.art, find, $item, event);\n if (typeof result === 'string' || typeof result === 'number') {\n $value.innerHTML = result;\n }\n }\n setLeft();\n this.art.emit('selector', find, $item);\n });\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreen(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n const $fullscreenOn = append($control, icons.fullscreenOn);\n const $fullscreenOff = append($control, icons.fullscreenOff);\n setStyle($fullscreenOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreen = !art.fullscreen;\n });\n\n art.on('fullscreen', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Fullscreen'));\n setStyle($fullscreenOn, 'display', 'none');\n setStyle($fullscreenOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Fullscreen'));\n setStyle($fullscreenOn, 'display', 'inline-flex');\n setStyle($fullscreenOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n const $fullscreenWebOn = append($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = append($control, icons.fullscreenWebOff);\n setStyle($fullscreenWebOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n\n art.on('fullscreenWeb', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'none');\n setStyle($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'inline-flex');\n setStyle($fullscreenWebOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n art.pip = !art.pip;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n art.play();\n });\n\n proxy($pause, 'click', () => {\n art.pause();\n });\n\n function showPlay() {\n setStyle($play, 'display', 'flex');\n setStyle($pause, 'display', 'none');\n }\n\n function showPause() {\n setStyle($play, 'display', 'none');\n setStyle($pause, 'display', 'flex');\n }\n\n if (art.playing) {\n showPause();\n } else {\n showPlay();\n }\n\n art.on('video:playing', () => {\n showPause();\n });\n\n art.on('video:pause', () => {\n showPlay();\n });\n },\n });\n}\n","import { query, clamp, append, setStyle, setStyles, secondToTime, includeFromEvent, isMobile } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = $progress.getBoundingClientRect();\n const eventLeft = event.pageX;\n const width = clamp(eventLeft - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * art.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(options) {\n return (art) => {\n const {\n icons,\n option,\n events: { proxy },\n } = art;\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n setStyle($played, 'backgroundColor', 'var(--theme)');\n\n let indicatorSize = art.constructor.INDICATOR_SIZE;\n\n if (icons.indicator) {\n indicatorSize = art.constructor.INDICATOR_SIZE_ICON;\n append($indicator, icons.indicator);\n } else {\n setStyles($indicator, {\n backgroundColor: 'var(--theme)',\n });\n }\n\n if (isMobile) {\n indicatorSize = art.constructor.INDICATOR_SIZE_MOBILE;\n if (icons.indicator) {\n indicatorSize = art.constructor.INDICATOR_SIZE_MOBILE_ICON;\n }\n }\n\n setStyles($indicator, {\n left: `-${indicatorSize / 2}px`,\n width: `${indicatorSize}px`,\n height: `${indicatorSize}px`,\n });\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle($indicator, 'left', `calc(${percentage * 100}% - ${indicatorSize / 2}px)`);\n }\n }\n\n art.on('video:loadedmetadata', () => {\n for (let index = 0; index < option.highlight.length; index++) {\n const item = option.highlight[index];\n const left = (clamp(item.time, 0, art.duration) / art.duration) * 100;\n append(\n $highlight,\n ``,\n );\n }\n });\n\n setBar('loaded', art.loaded);\n\n art.on('setBar', (type, percentage) => {\n setBar(type, percentage);\n });\n\n art.on('video:progress', () => {\n setBar('loaded', art.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', art.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n art.seek = second;\n }\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n art.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n };\n };\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return (art) => ({\n ...option,\n style: {\n cursor: 'auto',\n },\n mounted: ($control) => {\n function getTime() {\n const newTime = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n\n const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress'];\n for (let index = 0; index < events.length; index++) {\n art.on(events[index], getTime);\n }\n },\n });\n}\n","import { append, clamp, tooltip, setStyle, isMobile } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = art.constructor.VOLUME_PANEL_WIDTH;\n const handleWidth = art.constructor.VOLUME_HANDLE_WIDTH;\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (art.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(art.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(art.volume);\n });\n\n proxy($volume, 'click', () => {\n art.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n art.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n art.muted = false;\n art.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n art.muted = false;\n art.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n art.setting.toggle = true;\n });\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(options) {\n return (art) => ({\n ...options,\n mounted: ($control) => {\n const {\n option,\n template: { $progress, $video },\n events: { proxy, loadImg },\n } = art;\n\n let image = null;\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, number, column } = option.thumbnails;\n const width = image.naturalWidth / column;\n const height = width / ($video.videoWidth / $video.videoHeight);\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', async (event) => {\n if (!loading) {\n loading = true;\n const img = await loadImg(option.thumbnails.url);\n image = img;\n isLoad = true;\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n art.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.html : '',\n selector: qualityOption,\n onSelect(item) {\n art.switchQuality(item.url, item.html);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / art.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / art.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { setStyles, includeFromEvent, isMobile } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport flip from './flip';\nimport info from './info';\nimport version from './version';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = this.art;\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n index: 30,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 40,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 50,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n for (let index = 0; index < option.contextmenu.length; index++) {\n this.add(option.contextmenu[index]);\n }\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n this.art.on('blur', () => {\n this.show = false;\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n } = art;\n return {\n ...option,\n html: `${i18n.get('Play Speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.playbackRate = Number(value);\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n art.on('playbackRate', (value) => {\n const $current = queryAll('span', $panel).find((item) => Number(item.dataset.value) === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.aspectRatio = value;\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n art.on('aspectRatio', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return (art) => {\n const { i18n } = art;\n return {\n ...option,\n html: `${i18n.get('Video Flip')}:\n ${i18n.get('Normal')}\n ${i18n.get('Horizontal')}\n ${i18n.get('Vertical')}\n `,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.flip = value;\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n art.on('flip', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video Info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: `ArtPlayer ${process.env.APP_VER}`,\n };\n}\n","export default function close(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Close'),\n click: contextmenu => {\n contextmenu.show = false;\n },\n });\n}\n","import { queryAll, isMobile } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.name = 'info';\n \n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n constructor,\n events: { proxy },\n template: { $infoPanel, $infoClose, $video },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const $types = queryAll('[data-video]', $infoPanel) || [];\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n for (let index = 0; index < $types.length; index++) {\n const item = $types[index];\n const value = $video[item.dataset.video];\n const innerText = typeof value === 'number' ? value.toFixed(2) : value;\n if (item.innerText !== innerText) {\n item.innerText = innerText;\n }\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n\n loop();\n }\n}\n","import { setStyle, setStyles, srtToVtt, vttToBlob, getExt, assToVtt, escape, errorHandle } from './utils';\nimport Component from './utils/component';\nimport validator from 'option-validator';\nimport scheme from './scheme';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n this.init(art.option.subtitle);\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n set url(url) {\n this.switch(url);\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = { ...option.subtitle, ...newOption, url };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) {\n notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n }\n return subUrl;\n }\n\n init(subtitleOption) {\n validator(subtitleOption, scheme.subtitle);\n if (!subtitleOption.url) return;\n\n const {\n notice,\n events: { proxy },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n this.style(subtitleOption.style);\n\n errorHandle(window.fetch, 'fetch not support');\n return fetch(subtitleOption.url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n errorHandle(window.TextDecoder, 'TextDecoder not support');\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', subtitleOption.url);\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return subtitleOption.url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n });\n }\n\n destroy() {\n for (let index = 0; index < this.destroyEvents.length; index++) {\n this.destroyEvents[index]();\n }\n }\n}\n","import { includeFromEvent, isMobile } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isInput = event.target.tagName === 'INPUT';\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isInput = false;\n art.isFocus = false;\n art.emit('blur');\n }\n });\n\n let clickTime = 0;\n events.proxy($video, 'click', () => {\n const now = Date.now();\n\n if (now - clickTime <= constructor.DB_CLICE_TIME) {\n art.emit('dblclick');\n\n if (isMobile) {\n if (!art.isLock) {\n art.toggle();\n }\n } else {\n art.fullscreen = !art.fullscreen;\n }\n } else {\n art.emit('click');\n\n if (!isMobile) {\n art.toggle();\n }\n }\n\n clickTime = now;\n });\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template;\n\n events.hover(\n $player,\n () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option } = art;\n\n const resizeFn = throttle(() => {\n if (art.normalSize) {\n art.autoSize = option.autoSize;\n }\n art.aspectRatioReset = true;\n art.notice.show = '';\n art.emit('resize');\n }, art.constructor.RESIZE_TIME);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => {\n resizeFn();\n });\n }\n}\n","import { clamp, secondToTime, isMobile, includeFromEvent } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $bottom, $controls } = art.template;\n\n let isDroging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n\n const onTouchStart = (event) => {\n if (event.touches.length === 1 && !art.isLock) {\n isDroging = true;\n const { clientX, clientY } = event.touches[0];\n startX = clientX;\n startY = clientY;\n startTime = art.currentTime;\n }\n };\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDroging && art.duration) {\n const autoOrientation = art.plugins.autoOrientation && art.plugins.autoOrientation.state;\n const { clientX, clientY } = event.touches[0];\n const ratioX = clamp((clientX - startX) / art.width, -1, 1);\n const ratioY = clamp((clientY - startY) / art.height, -1, 1);\n const ratio = autoOrientation ? ratioY : ratioX;\n const currentTime = clamp(startTime + (art.duration * ratio) / 2, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1));\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`;\n }\n };\n\n const onTouchEnd = () => {\n if (isDroging) {\n startX = 0;\n startY = 0;\n startTime = 0;\n isDroging = false;\n }\n };\n\n events.proxy($bottom, 'touchstart', (event) => {\n if (!includeFromEvent(event, $controls)) {\n onTouchStart(event);\n }\n });\n\n events.proxy($bottom, 'touchmove', onTouchMove);\n events.proxy($video, 'touchstart', onTouchStart);\n events.proxy($video, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n option,\n constructor,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state;\n }\n });\n}\n","import { isMobile } from './utils';\n\nexport default class Hotkey {\n constructor(art) {\n this.art = art;\n this.keys = {};\n\n if (art.option.hotkey && !isMobile) {\n this.init();\n }\n }\n\n init() {\n const { proxy } = this.art.events;\n\n this.add(27, () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n this.art.toggle();\n });\n\n this.add(37, () => {\n this.art.backward = 5;\n });\n\n this.add(38, () => {\n this.art.volume += 0.1;\n });\n\n this.add(39, () => {\n this.art.forward = 5;\n });\n\n this.add(40, () => {\n this.art.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n for (let index = 0; index < events.length; index++) {\n events[index].call(this.art, event);\n }\n this.art.emit('hotkey', event);\n }\n }\n }\n });\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n return this;\n }\n\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) {\n this.keys[key].splice(index, 1);\n }\n }\n return this;\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n template: { $layer },\n } = art;\n\n this.name = 'layer';\n this.$parent = $layer;\n\n for (let index = 0; index < option.layers.length; index++) {\n this.add(option.layers[index]);\n }\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Loading extends Component {\n constructor(art) {\n super(art);\n this.name = 'loading';\n append(art.template.$loading, art.icons.loading);\n }\n}\n","import { addClass, removeClass } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n set show(msg) {\n const {\n constructor,\n template: { $player, $noticeInner },\n } = this.art;\n\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n addClass($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n $noticeInner.innerText = '';\n removeClass($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else {\n removeClass($player, 'art-notice-show');\n }\n }\n}\n","import { append, setStyle } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'mask';\n const { template, icons, events } = art;\n\n const $state = append(template.$state, icons.state);\n const $error = append(template.$state, icons.error);\n\n setStyle($error, 'display', 'none');\n\n art.on('destroy', () => {\n setStyle($state, 'display', 'none');\n setStyle($error, 'display', null);\n });\n\n events.proxy(template.$state, 'click', () => art.play());\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from 'bundle-text:./loading.svg';\nimport state from 'bundle-text:./state.svg';\nimport check from 'bundle-text:./check.svg';\nimport play from 'bundle-text:./play.svg';\nimport pause from 'bundle-text:./pause.svg';\nimport volume from 'bundle-text:./volume.svg';\nimport volumeClose from 'bundle-text:./volume-close.svg';\nimport screenshot from 'bundle-text:./screenshot.svg';\nimport setting from 'bundle-text:./setting.svg';\nimport arrowLeft from 'bundle-text:./arrow-left.svg';\nimport arrowRight from 'bundle-text:./arrow-right.svg';\nimport playbackRate from 'bundle-text:./playback-rate.svg';\nimport aspectRatio from 'bundle-text:./aspect-ratio.svg';\nimport config from 'bundle-text:./config.svg';\nimport pip from 'bundle-text:./pip.svg';\nimport lock from 'bundle-text:./lock.svg';\nimport unlock from 'bundle-text:./unlock.svg';\nimport fullscreenOff from 'bundle-text:./fullscreen-off.svg';\nimport fullscreenOn from 'bundle-text:./fullscreen-on.svg';\nimport fullscreenWebOff from 'bundle-text:./fullscreen-web-off.svg';\nimport fullscreenWebOn from 'bundle-text:./fullscreen-web-on.svg';\nimport switchOn from 'bundle-text:./switch-on.svg';\nimport switchOff from 'bundle-text:./switch-off.svg';\nimport flip from 'bundle-text:./flip.svg';\nimport error from 'bundle-text:./error.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n check,\n volume,\n volumeClose,\n screenshot,\n setting,\n pip,\n arrowLeft,\n arrowRight,\n playbackRate,\n aspectRatio,\n config,\n lock,\n flip,\n unlock,\n fullscreenOff,\n fullscreenOn,\n fullscreenWebOff,\n fullscreenWebOn,\n switchOn,\n switchOff,\n error,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","module.exports = \"2fa9a917c3d0b2a2\";","module.exports = \"6347f1c94437bf17\";","module.exports = \"cf45eac87ef6c5a8\";","module.exports = \"b1730f657280749d\";","module.exports = \"aed7bb049e8eeb13\";","module.exports = \"5d049b39f3100425\";","module.exports = \"9bfc32435596aa66\";","module.exports = \"6d270d4786d36189\";","module.exports = \"5c6c0195698308af\";","module.exports = \"2ba35247757d062a\";","module.exports = \"e3197205d280d5f0\";","module.exports = \"adf704bb6c6db9f1\";","module.exports = \"f158b6e222339f4b\";","module.exports = \"9ff79449772c28ff\";","module.exports = \"c24909162a3a6947\";","module.exports = \"5ff91babd37ec49f\";","module.exports = \"21fbe4c111eddb1e\";","module.exports = \"2a0858aa31c4f75f\";","module.exports = \"2d306a33a864ed5b\";","module.exports = \"d056d9f835c1b609\";","module.exports = \"d8403de5ce4cf9c0\";","module.exports = \"0b638041327c3652\";","module.exports = \"0d802f359a76b941\";","module.exports = \"5ce760f810b6b485\";","module.exports = \"f3358296f8174503\";","import flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\nimport subtitleOffset from './subtitleOffset';\nimport Component from '../utils/component';\nimport { append, addClass, setStyle, inverseClass, includeFromEvent, def, has } from '../utils';\n\nfunction makeRecursion(option, parentItem, parentList) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n item.$parentItem = parentItem;\n item.$parentList = parentList;\n if (item.selector) {\n makeRecursion(item.selector, item, option);\n }\n }\n return option;\n}\n\nfunction isStringOrNumber(val) {\n return ['string', 'number'].includes(typeof val);\n}\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n events: { proxy },\n template: { $setting, $player },\n } = art;\n\n this.name = 'setting';\n this.$parent = $setting;\n\n this.option = [];\n this.events = [];\n this.cache = new Map();\n\n if (option.setting) {\n if (option.playbackRate) {\n this.option.push(playbackRate(art));\n }\n\n if (option.aspectRatio) {\n this.option.push(aspectRatio(art));\n }\n\n if (option.flip) {\n this.option.push(flip(art));\n }\n\n if (option.subtitleOffset) {\n this.option.push(subtitleOffset(art));\n }\n\n for (let index = 0; index < option.settings.length; index++) {\n this.option.push(option.settings[index]);\n }\n\n this.option = makeRecursion(this.option);\n\n this.init(this.option);\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false;\n this.init(this.option);\n }\n });\n\n proxy($player, 'click', (event) => {\n if (\n this.show &&\n !includeFromEvent(event, art.controls.setting) &&\n !includeFromEvent(event, this.$parent)\n ) {\n this.show = false;\n this.init(this.option);\n }\n });\n }\n }\n\n add(callback) {\n if (typeof callback === 'function') {\n this.option.push(callback(this.art));\n } else {\n this.option.push(callback);\n }\n\n this.cache = new Map();\n this.events.forEach((event) => event());\n this.events = [];\n this.$parent.innerHTML = '';\n this.option = makeRecursion(this.option);\n this.init(this.option);\n }\n\n creatHeader(item) {\n const {\n icons,\n events: { proxy },\n } = this.art;\n\n const $item = document.createElement('div');\n addClass($item, 'art-setting-item');\n addClass($item, 'art-setting-item-back');\n const $left = append($item, '
');\n const $icon = document.createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n append($icon, icons.arrowLeft);\n append($left, $icon);\n append($left, item.$parentItem.html);\n\n const event = proxy($item, 'click', () => {\n this.init(item.$parentList);\n });\n\n this.events.push(event);\n\n return $item;\n }\n\n creatItem(type, item) {\n const {\n icons,\n events: { proxy },\n } = this.art;\n\n const $item = document.createElement('div');\n addClass($item, 'art-setting-item');\n\n if (isStringOrNumber(item.name)) {\n $item.dataset.name = item.name;\n }\n\n if (isStringOrNumber(item.value)) {\n $item.dataset.value = item.value;\n }\n\n const $left = append($item, '
');\n const $right = append($item, '
');\n\n const $icon = document.createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n\n switch (type) {\n case 'switch':\n case 'range':\n append($icon, isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config);\n break;\n case 'selector':\n if (item.selector && item.selector.length) {\n append(\n $icon,\n isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config,\n );\n } else {\n append($icon, icons.check);\n }\n break;\n default:\n break;\n }\n\n append($left, $icon);\n item.$icon = $icon;\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $icon.innerHTML = value;\n }\n },\n });\n\n const $html = document.createElement('div');\n addClass($html, 'art-setting-item-left-text');\n append($html, item.html || '');\n append($left, $html);\n item.$html = $html;\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $html.innerHTML = value;\n }\n },\n });\n\n const $tooltip = document.createElement('div');\n addClass($tooltip, 'art-setting-item-right-tooltip');\n append($tooltip, item.tooltip || '');\n append($right, $tooltip);\n item.$tooltip = $tooltip;\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $tooltip.innerHTML = value;\n }\n },\n });\n\n switch (type) {\n case 'switch': {\n const $state = document.createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $switchOn = append($state, icons.switchOn);\n const $switchOff = append($state, icons.switchOff);\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none');\n append($right, $state);\n item.$switch = item.switch;\n\n def(item, 'switch', {\n configurable: true,\n get() {\n return item.$switch;\n },\n set(value) {\n item.$switch = value;\n if (value) {\n setStyle($switchOff, 'display', 'none');\n setStyle($switchOn, 'display', null);\n } else {\n setStyle($switchOff, 'display', null);\n setStyle($switchOn, 'display', 'none');\n }\n },\n });\n break;\n }\n case 'range':\n {\n const $state = document.createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $range = append($state, '');\n $range.value = item.range[0] || 0;\n $range.min = item.range[1] || 0;\n $range.max = item.range[2] || 10;\n $range.step = item.range[3] || 1;\n addClass($range, 'art-setting-range');\n append($right, $state);\n item.$range = $range;\n\n def(item, 'range', {\n configurable: true,\n get() {\n return $range.valueAsNumber;\n },\n set(value) {\n $range.value = Number(value);\n },\n });\n }\n break;\n case 'selector':\n if (item.selector && item.selector.length) {\n const $state = document.createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n append($state, icons.arrowRight);\n append($right, $state);\n }\n break;\n default:\n break;\n }\n\n switch (type) {\n case 'switch': {\n if (item.onSwitch) {\n const event = proxy($item, 'click', async (event) => {\n item.switch = await item.onSwitch.call(this.art, item, $item, event);\n });\n\n this.events.push(event);\n }\n break;\n }\n case 'range': {\n if (item.onRange && item.$range) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.tooltip = await item.onRange.call(this.art, item, $item, event);\n });\n\n this.events.push(event);\n }\n break;\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector && item.selector.length) {\n this.init(item.selector, item.width);\n } else {\n inverseClass($item, 'art-current');\n\n if (item.$parentList) {\n this.init(item.$parentList);\n }\n\n if (item.$parentItem && item.$parentItem.onSelect) {\n const result = await item.$parentItem.onSelect.call(this.art, item, $item, event);\n if (item.$parentItem.$tooltip && isStringOrNumber(result)) {\n item.$parentItem.$tooltip.innerHTML = result;\n }\n }\n }\n });\n\n this.events.push(event);\n\n if (item.default) {\n addClass($item, 'art-current');\n }\n }\n break;\n default:\n break;\n }\n\n return $item;\n }\n\n init(option, width) {\n const { constructor } = this.art;\n\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n inverseClass($panel, 'art-current');\n setStyle(this.$parent, 'width', `${$panel.dataset.width}px`);\n setStyle(this.$parent, 'height', `${$panel.dataset.height}px`);\n } else {\n const $panel = document.createElement('div');\n addClass($panel, 'art-setting-panel');\n $panel.dataset.width = width || constructor.SETTING_WIDTH;\n $panel.dataset.height = option.length * constructor.SETTING_ITEM_HEIGHT;\n\n if (option[0] && option[0].$parentItem) {\n append($panel, this.creatHeader(option[0]));\n $panel.dataset.height = Number($panel.dataset.height) + constructor.SETTING_ITEM_HEIGHT;\n }\n\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n if (has(item, 'switch')) {\n append($panel, this.creatItem('switch', item));\n } else if (has(item, 'range')) {\n append($panel, this.creatItem('range', item));\n } else {\n append($panel, this.creatItem('selector', item));\n }\n }\n\n append(this.$parent, $panel);\n this.cache.set(option, $panel);\n inverseClass($panel, 'art-current');\n setStyle(this.$parent, 'width', `${$panel.dataset.width}px`);\n setStyle(this.$parent, 'height', `${$panel.dataset.height}px`);\n\n if (option[0] && option[0].$parentItem && option[0].$parentItem.mounted) {\n option[0].$parentItem.mounted.call(this.art, $panel, option[0].$parentItem);\n }\n }\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(art) {\n const { i18n, icons, constructor } = art;\n\n const keys = {\n normal: 'Normal',\n horizontal: 'Horizontal',\n vertical: 'Vertical',\n };\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = i18n.get(keys[value]);\n const $current = queryAll('.art-setting-item', $panel).find((item) => item.dataset.value === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Video Flip'),\n tooltip: i18n.get(keys[art.flip]),\n icon: icons.flip,\n selector: Object.keys(keys).map((item) => {\n return {\n value: item,\n default: item === art.flip,\n html: i18n.get(keys[item]),\n };\n }),\n onSelect(item) {\n art.flip = item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.flip);\n art.on('flip', () => {\n update($panel, item.$tooltip, art.flip);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(art) {\n const { i18n, icons, constructor } = art;\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => item.dataset.value === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ['default', '4:3', '16:9'].map((item) => {\n return {\n value: item,\n default: item === art.aspectRatio,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.aspectRatio = item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.aspectRatio);\n art.on('aspectRatio', () => {\n update($panel, item.$tooltip, art.aspectRatio);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(art) {\n const { i18n, icons, constructor } = art;\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value;\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => Number(item.dataset.value) === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: [0.5, 0.75, 1.0, 1.25, 1.5, 2.0].map((item) => {\n return {\n value: item,\n default: item === art.playbackRate,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.playbackRate = item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.playbackRate);\n art.on('playbackRate', () => {\n update($panel, item.$tooltip, art.playbackRate);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\n\n function getI18n(value) {\n return value === 0 ? i18n.get('Normal') : value;\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => Number(item.dataset.value) === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Subtitle Offset'),\n tooltip: getI18n(art.subtitleOffset),\n icon: icons.subtitle,\n selector: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5].map((item) => {\n return {\n value: item,\n default: item === art.subtitleOffset,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.subtitleOffset = item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.subtitleOffset);\n art.on('subtitleOffset', () => {\n update($panel, item.$tooltip, art.subtitleOffset);\n });\n },\n };\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { errorHandle, isMobile, has, def } from '../utils';\nimport miniProgressBar from './miniProgressBar';\nimport autoOrientation from './autoOrientation';\nimport autoPlayback from './autoPlayback';\nimport fastForward from './fastForward';\nimport lock from './lock';\n\nexport default class Plugins {\n constructor(art) {\n this.art = art;\n this.id = 0;\n\n const { option } = art;\n\n if (option.miniProgressBar && !option.isLive) {\n this.add(miniProgressBar);\n }\n\n if (option.lock && isMobile) {\n this.add(lock);\n }\n\n if (option.autoPlayback) {\n this.add(autoPlayback);\n }\n\n if (option.autoOrientation && isMobile) {\n this.add(autoOrientation);\n }\n\n if (option.fastForward && isMobile && !option.isLive) {\n this.add(fastForward);\n }\n\n for (let index = 0; index < option.plugins.length; index++) {\n this.add(option.plugins[index]);\n }\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","export default function miniProgressBar(art) {\n art.on('ready', () => {\n art.layers.add({\n name: 'miniProgressBar',\n mounted($progressBar) {\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${art.played * 100}%`;\n });\n\n art.on('setBar', (type, percentage) => {\n if (type === 'played') {\n $progressBar.style.width = `${percentage * 100}%`;\n }\n });\n },\n });\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","import { setStyle, addClass, removeClass, hasClass } from '../utils';\n\nexport default function autoOrientation(art) {\n const {\n option,\n constructor,\n template: { $player, $video },\n } = art;\n\n art.on('fullscreenWeb', (state) => {\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(() => {\n setStyle($player, 'width', `${viewHeight}px`);\n setStyle($player, 'height', `${viewWidth}px`);\n setStyle($player, 'transform-origin', '0 0');\n setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n addClass($player, 'art-auto-orientation');\n art.emit('resize');\n }, constructor.MOBILE_AUTO_ORIENTATION_TIME);\n }\n } else {\n if (hasClass($player, 'art-auto-orientation')) {\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n setStyle($player, 'transform', null);\n setStyle($player, 'transform-origin', null);\n removeClass($player, 'art-auto-orientation');\n art.aspectRatioReset = true;\n art.autoSize = option.autoSize;\n art.notice.show = '';\n art.emit('resize');\n }\n }\n });\n\n art.on('fullscreen', async (state) => {\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n addClass($player, 'art-auto-orientation-fullscreen');\n }\n } else {\n if (hasClass($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n removeClass($player, 'art-auto-orientation-fullscreen');\n }\n }\n });\n\n return {\n name: 'autoOrientation',\n get state() {\n return hasClass($player, 'art-auto-orientation');\n },\n };\n}\n","import { secondToTime, setStyle } from '../utils';\n\nexport default function autoPlayback(art) {\n const {\n i18n,\n storage,\n constructor,\n template: { $poster },\n } = art;\n\n art.on('video:timeupdate', () => {\n const times = storage.get('times') || {};\n const keys = Object.keys(times);\n if (keys.length > constructor.AUTO_PLAYBACK_MAX) delete times[keys[0]];\n times[art.option.url] = art.currentTime;\n storage.set('times', times);\n });\n\n art.on('ready', () => {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.url];\n if (currentTime) {\n art.seek = currentTime;\n setStyle($poster, 'display', 'none');\n art.notice.show = `${i18n.get('Auto playback at')} ${secondToTime(currentTime)}`;\n }\n });\n\n return {\n name: 'autoPlayback',\n get times() {\n return storage.get('times') || {};\n },\n clear() {\n return storage.del('times');\n },\n };\n}\n","import { hasClass, addClass, removeClass } from '../utils';\n\nexport default function fastForward(art) {\n const {\n constructor,\n events: { proxy },\n template: { $player, $video },\n } = art;\n\n let timer = null;\n let isPress = false;\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n addClass($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n }\n };\n\n const onStop = () => {\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = 1;\n removeClass($player, 'art-fast-forward');\n }\n };\n\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n\n return {\n name: 'fastForward',\n get state() {\n return hasClass($player, 'art-fast-forward');\n },\n };\n}\n","import { append, setStyle, hasClass, addClass, removeClass } from '../utils';\n\nexport default function lock(art) {\n const {\n layers,\n icons,\n template: { $player },\n } = art;\n\n layers.add({\n name: 'lock',\n mounted($el) {\n const $lock = append($el, icons.lock);\n const $unlock = append($el, icons.unlock);\n setStyle($lock, 'display', 'none');\n\n art.on('lock', (state) => {\n if (state) {\n setStyle($lock, 'display', 'inline-flex');\n setStyle($unlock, 'display', 'none');\n } else {\n setStyle($lock, 'display', 'none');\n setStyle($unlock, 'display', 'inline-flex');\n }\n });\n },\n click() {\n if (hasClass($player, 'art-lock')) {\n removeClass($player, 'art-lock');\n this.isLock = false;\n art.emit('lock', false);\n } else {\n addClass($player, 'art-lock');\n this.isLock = true;\n art.emit('lock', true);\n }\n },\n });\n\n return {\n name: 'lock',\n get state() {\n return hasClass($player, 'art-lock');\n },\n };\n}\n","export default class Ads {\n constructor(art) {\n this.art = art;\n this.init();\n }\n\n get current() {\n return this.art.option.ads[this.index];\n }\n\n get prev() {\n return this.art.option.ads[this.index - 1];\n }\n\n get next() {\n return this.art.option.ads[this.index + 1];\n }\n\n init() {\n this.index = 0;\n this.isEnd = false;\n this.playing = false;\n this.urlCache = this.art.option.url;\n\n if (this.current) {\n this.playing = true;\n this.play(this.current);\n }\n }\n\n play(item = {}) {\n if (this.isEnd) return;\n this.art.switchUrl(item.url);\n\n this.art.once('video:timeupdate', () => {\n this.art.emit('ads:start', item);\n });\n\n this.art.once('video:ended', () => {\n const next = this.next;\n if (next) {\n this.index += 1;\n this.play(next);\n } else {\n this.end();\n }\n });\n }\n\n end() {\n if (this.isEnd) return;\n this.isEnd = true;\n this.playing = false;\n this.art.option.url = this.urlCache;\n this.art.switchUrl(this.urlCache);\n this.art.emit('ads:end');\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../packages/artplayer/"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-36399c71fd65785e.js","node_modules/option-validator/dist/option-validator.js","packages/artplayer/src/utils/emitter.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","packages/artplayer/src/utils/index.js","packages/artplayer/src/utils/dom.js","packages/artplayer/src/utils/compatibility.js","packages/artplayer/src/utils/error.js","packages/artplayer/src/utils/subtitle.js","packages/artplayer/src/utils/file.js","packages/artplayer/src/utils/property.js","packages/artplayer/src/utils/time.js","packages/artplayer/src/utils/format.js","packages/artplayer/src/scheme/index.js","packages/artplayer/src/config/index.js","packages/artplayer/src/whitelist.js","packages/artplayer/src/template.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.json","packages/artplayer/src/i18n/zh-tw.json","packages/artplayer/src/i18n/pl.json","packages/artplayer/src/i18n/cs.json","packages/artplayer/src/player/index.js","packages/artplayer/src/player/urlMix.js","packages/artplayer/src/player/attrMix.js","packages/artplayer/src/player/playMix.js","packages/artplayer/src/player/pauseMix.js","packages/artplayer/src/player/toggleMix.js","packages/artplayer/src/player/seekMix.js","packages/artplayer/src/player/volumeMix.js","packages/artplayer/src/player/currentTimeMix.js","packages/artplayer/src/player/durationMix.js","packages/artplayer/src/player/switchMix.js","packages/artplayer/src/player/playbackRateMix.js","packages/artplayer/src/player/aspectRatioMix.js","packages/artplayer/src/player/screenshotMix.js","packages/artplayer/src/player/fullscreenMix.js","packages/artplayer/src/libs/screenfull.js","packages/artplayer/src/player/fullscreenWebMix.js","packages/artplayer/src/player/pipMix.js","packages/artplayer/src/player/loadedMix.js","packages/artplayer/src/player/playedMix.js","packages/artplayer/src/player/playingMix.js","packages/artplayer/src/player/autoSizeMix.js","packages/artplayer/src/player/rectMix.js","packages/artplayer/src/player/flipMix.js","packages/artplayer/src/player/miniMix.js","packages/artplayer/src/player/loopMix.js","packages/artplayer/src/player/posterMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/titleMix.js","packages/artplayer/src/player/normalSizeMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/optionInit.js","packages/artplayer/src/player/eventInit.js","packages/artplayer/src/control/index.js","packages/artplayer/src/utils/component.js","packages/artplayer/src/control/fullscreen.js","packages/artplayer/src/control/fullscreenWeb.js","packages/artplayer/src/control/pip.js","packages/artplayer/src/control/playAndPause.js","packages/artplayer/src/control/progress.js","packages/artplayer/src/control/time.js","packages/artplayer/src/control/volume.js","packages/artplayer/src/control/setting.js","packages/artplayer/src/control/thumbnails.js","packages/artplayer/src/control/screenshot.js","packages/artplayer/src/control/quality.js","packages/artplayer/src/control/loop.js","packages/artplayer/src/contextmenu/index.js","packages/artplayer/src/contextmenu/playbackRate.js","packages/artplayer/src/contextmenu/aspectRatio.js","packages/artplayer/src/contextmenu/flip.js","packages/artplayer/src/contextmenu/info.js","packages/artplayer/src/contextmenu/version.js","packages/artplayer/src/contextmenu/close.js","packages/artplayer/src/info.js","packages/artplayer/src/subtitle.js","packages/artplayer/src/events/index.js","packages/artplayer/src/events/clickInit.js","packages/artplayer/src/events/hoverInit.js","packages/artplayer/src/events/mousemoveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/hotkey.js","packages/artplayer/src/layer.js","packages/artplayer/src/loading.js","packages/artplayer/src/notice.js","packages/artplayer/src/mask.js","packages/artplayer/src/icons/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-cc1465de590716c3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7354687a49315faa.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-16dba6b497e57200.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-f488ca9613523a89.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-944df7462f092344.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-905e2a3a5bf8821e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7ca6634310de48a5.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ead51c22e001d3e4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5f406cb67e8ce068.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4c8d4bdd32e5eb21.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4e595cc5186a564d.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c0889fbdfa73dc08.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-48946af7015cb1ff.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-424af5bfda438aed.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7214ee73e4711a3f.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d30b61330c0a5e8f.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-aea71df79a337dd1.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-446c9535ee37c4cf.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3e81c0d117284ebb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6be8b022bb1f1d0e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5ac93b92a83bb1c2.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bcccb383a7b6e33b.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-472cc0769143224b.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-714e675b41750899.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bfedbb03557d8834.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-900fbd1165be66ff.js","packages/artplayer/src/setting/index.js","packages/artplayer/src/setting/flip.js","packages/artplayer/src/setting/aspectRatio.js","packages/artplayer/src/setting/playbackRate.js","packages/artplayer/src/setting/subtitleOffset.js","packages/artplayer/src/storage.js","packages/artplayer/src/plugins/index.js","packages/artplayer/src/plugins/miniProgressBar.js","packages/artplayer/src/plugins/autoOrientation.js","packages/artplayer/src/plugins/autoPlayback.js","packages/artplayer/src/plugins/fastForward.js","packages/artplayer/src/plugins/lock.js","packages/artplayer/src/mobile.js"],"sourcesContent":["import style from 'bundle-text:./style/index.less';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option, readyCallback) {\n super();\n\n this.id = ++id;\n\n const mergeOption = utils.mergeDeep(Artplayer.option, option);\n this.option = validator(mergeOption, scheme);\n\n this.isLock = false;\n this.isReady = false;\n this.isFocus = false;\n this.isInput = false;\n this.isDestroy = false;\n\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this));\n }\n\n instances.push(this);\n }\n\n static get instances() {\n return instances;\n }\n\n static get version() {\n return process.env.APP_VER;\n }\n\n static get env() {\n return process.env.NODE_ENV;\n }\n\n static get build() {\n return process.env.BUILD_DATE;\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n type: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: false,\n autoMini: false,\n loop: false,\n flip: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n useSSR: false,\n playsInline: true,\n lock: false,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n encoding: 'utf-8',\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n get proxy() {\n return this.events.proxy;\n }\n\n get query() {\n return this.template.query;\n }\n\n destroy(removeHtml = true) {\n this.events.destroy();\n this.template.destroy(removeHtml);\n instances.splice(instances.indexOf(this), 1);\n this.isDestroy = true;\n this.emit('destroy');\n }\n}\n\nArtplayer.NOTICE_TIME = 2000;\nArtplayer.SETTING_WIDTH = 250;\nArtplayer.SETTING_ITEM_WIDTH = 200;\nArtplayer.SETTING_ITEM_HEIGHT = 35;\nArtplayer.INDICATOR_SIZE = 14;\nArtplayer.INDICATOR_SIZE_ICON = 16;\nArtplayer.INDICATOR_SIZE_MOBILE = 18;\nArtplayer.INDICATOR_SIZE_MOBILE_ICON = 20;\nArtplayer.VOLUME_PANEL_WIDTH = 60;\nArtplayer.VOLUME_HANDLE_WIDTH = 12;\nArtplayer.RESIZE_TIME = 500;\nArtplayer.SCROLL_TIME = 200;\nArtplayer.SCROLL_GAP = 50;\nArtplayer.AUTO_PLAYBACK_MAX = 10;\nArtplayer.RECONNECT_TIME_MAX = 5;\nArtplayer.RECONNECT_SLEEP_TIME = 1000;\nArtplayer.CONTROL_HIDE_TIME = 3000;\nArtplayer.DB_CLICE_TIME = 300;\nArtplayer.MOBILE_AUTO_PLAYBACKRATE = 3;\nArtplayer.MOBILE_AUTO_PLAYBACKRATE_TIME = 1000;\nArtplayer.MOBILE_AUTO_ORIENTATION_TIME = 200;\nArtplayer.INFO_LOOP_TIME = 1000;\nArtplayer.FAST_FORWARD_VALUE = 3;\nArtplayer.FAST_FORWARD_TIME = 1000;\n\nif (typeof document !== 'undefined') {\n if (!document.getElementById('artplayer-style')) {\n const $style = document.createElement('style');\n $style.id = 'artplayer-style';\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n\nif (typeof window !== 'undefined') {\n window['Artplayer'] = Artplayer;\n}\n\n// eslint-disable-next-line no-console\nconsole.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n","module.exports = \"028e47e77afa80d5\";","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'top') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\n\nexport function isInViewport(el, offset = 0) {\n const rect = el.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n const vertInView = rect.top - offset <= windowHeight && rect.top + rect.height + offset >= 0;\n const horInView = rect.left - offset <= windowWidth + offset && rect.left + rect.width + offset >= 0;\n return vertInView && horInView;\n}\n\nexport function includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\n\nexport function replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\n","export const userAgent = typeof window !== 'undefined' ? window.navigator.userAgent : '';\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent);\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexport const isWechat = /MicroMessenger/i.test(userAgent);\nexport const isIE = /MSIE|Trident/i.test(userAgent);\nexport const isAndroid = /android/i.test(userAgent);\nexport const isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\n","export class ArtPlayerError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'ArtPlayerError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new ArtPlayerError(msg);\n }\n return condition;\n}\n","function fixSrt(srt) {\n return srt.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g, (_, $1, $2) => {\n let ms = $2.slice(0, 3);\n if ($2.length === 1) {\n ms = $2 + '00';\n }\n if ($2.length === 2) {\n ms = $2 + '0';\n }\n return `${$1},${ms}`;\n });\n}\n\nexport function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n fixSrt(srtText)\n .replace(/\\{\\\\([ibu])\\}/g, '')\n .replace(/\\{\\\\([ibu])1\\}/g, '<$1>')\n .replace(/\\{([ibu])\\}/g, '<$1>')\n .replace(/\\{\\/([ibu])\\}/g, '')\n .replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2')\n .replace(/{[\\s\\S]*?}/g, '')\n .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map((line) => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map((item) => item.trim())\n .join('\\n'),\n };\n })\n .filter((line) => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter((line) => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = (item) => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","import { errorHandle } from '../utils';\n\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === s || type === n || value instanceof Element,\n `${paths.join('.')} require '${s}' or 'Element' type`,\n );\n}\n\nexport const ComponentOption = {\n html: validElement,\n disable: `?${b}`,\n name: `?${s}`,\n index: `?${n}`,\n style: `?${o}`,\n click: `?${f}`,\n mounted: `?${f}`,\n tooltip: `?${s}|${n}`,\n width: `?${n}`,\n selector: `?${a}`,\n onSelect: `?${f}`,\n switch: `?${b}`,\n onSwitch: `?${f}`,\n range: `?${a}`,\n onRange: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: s,\n type: s,\n theme: s,\n lang: s,\n volume: n,\n isLive: b,\n muted: b,\n autoplay: b,\n autoSize: b,\n autoMini: b,\n loop: b,\n flip: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n useSSR: b,\n playsInline: b,\n lock: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [ComponentOption],\n contextmenu: [ComponentOption],\n settings: [ComponentOption],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths) => {\n const position = ['top', 'left', 'right'];\n return errorHandle(\n position.includes(value),\n `${paths.join('.')} only accept ${position.toString()} as parameters`,\n );\n },\n },\n ],\n quality: [\n {\n default: `?${b}`,\n html: s,\n url: s,\n },\n ],\n highlight: [\n {\n time: n,\n text: s,\n },\n ],\n thumbnails: {\n url: s,\n number: n,\n column: n,\n },\n subtitle: {\n url: s,\n type: s,\n style: o,\n encoding: s,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","import { userAgent, isMobile } from './utils';\n\nexport default class Whitelist {\n constructor(art) {\n this.art = art;\n }\n\n get state() {\n const {\n option,\n constructor: { kindOf },\n } = this.art;\n\n return (\n !isMobile ||\n option.whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || userAgent.indexOf(item) > -1;\n case 'function':\n return item(userAgent);\n case 'regexp':\n return item.test(userAgent);\n default:\n return false;\n }\n })\n );\n }\n}\n","import { errorHandle, query, addClass, replaceElement, isMobile } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n const { option, constructor, whitelist } = art;\n\n if (option.container instanceof Element) {\n this.$container = option.container;\n } else {\n this.$container = query(option.container);\n errorHandle(this.$container, `No container element found by ${option.container}`);\n }\n\n const type = this.$container.tagName.toLowerCase();\n errorHandle(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n\n errorHandle(\n constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.$original = this.$container.cloneNode(true);\n\n if (whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
${process.env.APP_VER}
\n
\n
\n
Video url:
\n
\n
\n
\n
Video volume:
\n
\n
\n
\n
Video time:
\n
\n
\n
\n
Video duration:
\n
\n
\n
\n
Video resolution:
\n
\n x \n
\n
\n
\n
[x]
\n
\n
\n
\n
×
\n
\n
\n
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { option } = this.art;\n\n if (!option.useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsCenter = this.query('.art-controls-center');\n this.$controlsRight = this.query('.art-controls-right');\n this.$layer = this.query('.art-layers');\n this.$loading = this.query('.art-loading');\n this.$notice = this.query('.art-notice');\n this.$noticeInner = this.query('.art-notice-inner');\n this.$mask = this.query('.art-mask');\n this.$state = this.query('.art-state');\n this.$setting = this.query('.art-settings');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n if (option.backdrop) {\n addClass(this.$setting, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n addClass(this.$info, 'art-backdrop-filter');\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(removeHtml) {\n if (removeHtml) {\n replaceElement(this.$original, this.$container);\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn.json';\nimport zhTw from './zh-tw.json';\nimport pl from './pl.json';\nimport cs from './cs.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n 'pl': pl,\n 'cs': cs,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","{\n \"Video Info\": \"统计信息\",\n \"Close\": \"关闭\",\n \"Video Load Failed\": \"加载失败\",\n \"Volume\": \"音量\",\n \"Play\": \"播放\",\n \"Pause\": \"暂停\",\n \"Rate\": \"速度\",\n \"Mute\": \"静音\",\n \"Video Flip\": \"画面翻转\",\n \"Horizontal\": \"水平\",\n \"Vertical\": \"垂直\",\n \"Reconnect\": \"重新连接\",\n \"Show Setting\": \"显示设置\",\n \"Hide Setting\": \"隐藏设置\",\n \"Screenshot\": \"截图\",\n \"Play Speed\": \"播放速度\",\n \"Aspect Ratio\": \"画面比例\",\n \"Default\": \"默认\",\n \"Normal\": \"正常\",\n \"Open\": \"打开\",\n \"Switch Video\": \"切换\",\n \"Switch Subtitle\": \"切换字幕\",\n \"Fullscreen\": \"全屏\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Web Fullscreen\": \"网页全屏\",\n \"Exit Web Fullscreen\": \"退出网页全屏\",\n \"Mini Player\": \"迷你播放器\",\n \"PIP Mode\": \"开启画中画\",\n \"Exit PIP Mode\": \"退出画中画\",\n \"PIP Not Supported\": \"不支持画中画\",\n \"Fullscreen Not Supported\": \"不支持全屏\",\n \"Subtitle Offset\": \"字幕偏移\",\n \"Last Seen\": \"上次看到\",\n \"Jump Play\": \"跳转播放\"\n}","{\n \"Video Info\": \"統計訊息\",\n \"Close\": \"關閉\",\n \"Video Load Failed\": \"載入失敗\",\n \"Volume\": \"音量\",\n \"Play\": \"播放\",\n \"Pause\": \"暫停\",\n \"Rate\": \"速度\",\n \"Mute\": \"靜音\",\n \"Video Flip\": \"畫面翻轉\",\n \"Horizontal\": \"水平\",\n \"Vertical\": \"垂直\",\n \"Reconnect\": \"重新連接\",\n \"Show Setting\": \"顯示设置\",\n \"Hide Setting\": \"隱藏设置\",\n \"Screenshot\": \"截圖\",\n \"Play Speed\": \"播放速度\",\n \"Aspect Ratio\": \"畫面比例\",\n \"Default\": \"默認\",\n \"Normal\": \"正常\",\n \"Open\": \"打開\",\n \"Switch Video\": \"切換\",\n \"Switch Subtitle\": \"切換字幕\",\n \"Fullscreen\": \"全屏\",\n \"Exit Fullscreen\": \"退出全屏\",\n \"Web Fullscreen\": \"網頁全屏\",\n \"Exit Web Fullscreen\": \"退出網頁全屏\",\n \"Mini Player\": \"迷你播放器\",\n \"PIP Mode\": \"開啟畫中畫\",\n \"Exit PIP Mode\": \"退出畫中畫\",\n \"PIP Not Supported\": \"不支持畫中畫\",\n \"Fullscreen Not Supported\": \"不支持全屏\",\n \"Subtitle Offset\": \"字幕偏移\",\n \"Last Seen\": \"上次看到\",\n \"Jump Play\": \"跳轉播放\"\n}","{\n \"Video Info\": \"Informacje o wideo\",\n \"Close\": \"Zamknij\",\n \"Video Load Failed\": \"Błąd ładowania wideo\",\n \"Volume\": \"Głośność\",\n \"Play\": \"Odtwórz\",\n \"Pause\": \"Wstrzymaj\",\n \"Rate\": \"Oceń\",\n \"Mute\": \"Wycisz\",\n \"Video Flip\": \"Rotacja wideo\",\n \"Horizontal\": \"Pozioma\",\n \"Vertical\": \"Pionowa\",\n \"Reconnect\": \"Połącz ponownie\",\n \"Show Setting\": \"Pokaż ustawienia\",\n \"Hide Setting\": \"Ukryj ustawienia\",\n \"Screenshot\": \"Zrzut ekranu\",\n \"Play Speed\": \"Prędkość odtwarzania\",\n \"Aspect Ratio\": \"Współczynnik proporcji\",\n \"Default\": \"Domyślny\",\n \"Normal\": \"Normalny\",\n \"Open\": \"Otwórz\",\n \"Switch Video\": \"Przełącz wideo\",\n \"Switch Subtitle\": \"Przełącz napisy\",\n \"Fullscreen\": \"Pełny ekran\",\n \"Exit Fullscreen\": \"Zamknij pełny ekran\",\n \"Web Fullscreen\": \"Tryb pełnej strony\",\n \"Exit Web Fullscreen\": \"Zamknij tryb pełnej strony\",\n \"Mini Player\": \"Miniodtwarzacz\",\n \"PIP Mode\": \"Tryb PiP\",\n \"Exit PIP Mode\": \"Zamknij tryb PiP\",\n \"PIP Not Supported\": \"Tryb PiP nieobsługiwany\",\n \"Fullscreen Not Supported\": \"Pełny ekran nieobsługiwany\",\n \"Subtitle Offset\": \"Przesunięcie napisów\",\n \"Last Seen\": \"Ostatnio widziany\",\n \"Jump Play\": \"Skocz do gry\"\n}","{\n \"Video Info\": \"Info o videu\",\n \"Close\": \"Zavřít\",\n \"Video Load Failed\": \"Nahrání videa selhalo\",\n \"Volume\": \"Hlasitost\",\n \"Play\": \"Přehrát\",\n \"Pause\": \"Pozastavit\",\n \"Rate\": \"Hodnocení\",\n \"Mute\": \"Ztlumit\",\n \"Video Flip\": \"Otočit video\",\n \"Horizontal\": \"Horizontálně\",\n \"Vertical\": \"Vertikálně\",\n \"Reconnect\": \"Opětovné připojení\",\n \"Show Setting\": \"Zobrazit nastavení\",\n \"Hide Setting\": \"Skrýt nastavení\",\n \"Screenshot\": \"Snímek obrazovky\",\n \"Play Speed\": \"Rychlost přehrávání\",\n \"Aspect Ratio\": \"Poměr stran\",\n \"Default\": \"Výchozí\",\n \"Normal\": \"Normální\",\n \"Open\": \"Otevřít\",\n \"Switch Video\": \"Přepnout video\",\n \"Switch Subtitle\": \"Přepnout titulky\",\n \"Fullscreen\": \"Celá obrazovka\",\n \"Exit Fullscreen\": \"Opustit režim celé obrazovky\",\n \"Web Fullscreen\": \"Celá stránka\",\n \"Exit Web Fullscreen\": \"Zavřít režim celé stránky\",\n \"Mini Player\": \"Mini přehrávač\",\n \"PIP Mode\": \"Režim PIP\",\n \"Exit PIP Mode\": \"Opustit režim PIP\",\n \"PIP Not Supported\": \"Režim PIP není podporován\",\n \"Fullscreen Not Supported\": \"Režim celé obrazovky není podporován\",\n \"Subtitle Offset\": \"Posun titulků\",\n \"Last Seen\": \"Naposledy viděn\",\n \"Jump Play\": \"Hra na skok\"\n}","import urlMix from './urlMix';\nimport attrMix from './attrMix';\nimport playMix from './playMix';\nimport pauseMix from './pauseMix';\nimport toggleMix from './toggleMix';\nimport seekMix from './seekMix';\nimport volumeMix from './volumeMix';\nimport currentTimeMix from './currentTimeMix';\nimport durationMix from './durationMix';\nimport switchMix from './switchMix';\nimport playbackRateMix from './playbackRateMix';\nimport aspectRatioMix from './aspectRatioMix';\nimport screenshotMix from './screenshotMix';\nimport fullscreenMix from './fullscreenMix';\nimport fullscreenWebMix from './fullscreenWebMix';\nimport pipMix from './pipMix';\nimport loadedMix from './loadedMix';\nimport playedMix from './playedMix';\nimport playingMix from './playingMix';\nimport autoSizeMix from './autoSizeMix';\nimport rectMix from './rectMix';\nimport flipMix from './flipMix';\nimport miniMix from './miniMix';\nimport loopMix from './loopMix';\nimport posterMix from './posterMix';\nimport autoHeightMix from './autoHeightMix';\nimport themeMix from './themeMix';\nimport titleMix from './titleMix';\nimport normalSizeMix from './normalSizeMix';\nimport subtitleOffsetMix from './subtitleOffsetMix';\nimport optionInit from './optionInit';\nimport eventInit from './eventInit';\n\nexport default class Player {\n constructor(art) {\n urlMix(art);\n attrMix(art);\n playMix(art);\n pauseMix(art);\n toggleMix(art);\n seekMix(art);\n volumeMix(art);\n currentTimeMix(art);\n durationMix(art);\n switchMix(art);\n playbackRateMix(art);\n aspectRatioMix(art);\n screenshotMix(art);\n fullscreenMix(art);\n fullscreenWebMix(art);\n pipMix(art);\n loadedMix(art);\n playedMix(art);\n playingMix(art);\n autoSizeMix(art);\n rectMix(art);\n flipMix(art);\n miniMix(art);\n loopMix(art);\n posterMix(art);\n autoHeightMix(art);\n themeMix(art);\n titleMix(art);\n normalSizeMix(art);\n subtitleOffsetMix(art);\n eventInit(art);\n optionInit(art);\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(art, 'url', {\n get() {\n return $video.currentSrc;\n },\n async set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n await sleep();\n art.loading.show = true;\n typeCallback.call(art, $video, url, art);\n } else {\n if (art.url && art.url !== url) {\n art.once('video:canplay', () => {\n if (art.isReady) {\n art.emit('restart');\n }\n });\n }\n\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function attrMix(art) {\n const {\n template: { $video },\n } = art;\n\n def(art, 'attr', {\n value(key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art) {\n const {\n i18n,\n notice,\n option,\n constructor: { instances },\n template: { $video },\n } = art;\n\n def(art, 'play', {\n value() {\n const promise = $video.play();\n\n if (promise && promise.then) {\n promise.then().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n\n if (option.mutex) {\n for (let index = 0; index < instances.length; index++) {\n const instance = instances[index];\n if (instance !== art) {\n instance.pause();\n }\n }\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n\n return promise;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'pause', {\n value() {\n const result = $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n return result;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art) {\n def(art, 'toggle', {\n value() {\n if (art.playing) {\n return art.pause();\n } else {\n return art.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art) {\n const { notice } = art;\n\n def(art, 'seek', {\n set(time) {\n art.currentTime = time;\n art.emit('seek', art.currentTime);\n if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n }\n },\n });\n\n def(art, 'forward', {\n set(time) {\n art.seek = art.currentTime + time;\n },\n });\n\n def(art, 'backward', {\n set(time) {\n art.seek = art.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(art, 'volume', {\n get: () => $video.volume || 0,\n set: (percentage) => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art) {\n const { $video } = art.template;\n\n def(art, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = clamp(time, 0, art.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art) {\n def(art, 'duration', {\n get: () => {\n const { duration } = art.template.$video;\n if (duration === Infinity) return 0;\n return duration || 0;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function switchMix(art) {\n const { i18n, option, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n return new Promise((resolve) => {\n if (url === art.url) return resolve(url);\n const { playing } = art;\n art.pause();\n URL.revokeObjectURL(art.url);\n art.url = url;\n art.once('video:canplay', () => {\n art.playbackRate = false;\n art.aspectRatio = false;\n art.flip = 'normal';\n art.autoSize = option.autoSize;\n art.currentTime = currentTime;\n art.notice.show = '';\n if (playing) {\n art.play();\n }\n if (name) {\n notice.show = `${i18n.get('Switch Video')}: ${name}`;\n }\n art.emit('switch', url);\n resolve(url);\n });\n });\n }\n\n def(art, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, art.currentTime);\n },\n });\n\n def(art, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(art, 'playbackRate', {\n get() {\n return $video.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $video.playbackRate) return;\n const rateList = [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 3.0, 4.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else {\n art.playbackRate = 1;\n art.emit('playbackRate');\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || 'default';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':').map(Number);\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(art, 'aspectRatioReset', {\n set(value) {\n if (value) {\n const { aspectRatio } = art;\n art.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(art, 'getDataURL', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n resolve($canvas.toDataURL('image/png'));\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'getBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n $canvas.width = $video.videoWidth;\n $canvas.height = $video.videoHeight;\n $canvas.getContext('2d').drawImage($video, 0, 0);\n $canvas.toBlob((blob) => {\n resolve(URL.createObjectURL(blob));\n });\n } catch (err) {\n notice.show = err;\n reject(err);\n }\n }),\n });\n\n def(art, 'screenshot', {\n value: async () => {\n const dataUri = await art.getDataURL();\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n },\n });\n}\n","import getScreenfull from '../libs/screenfull';\nimport { addClass, removeClass, def, get } from '../utils';\n\nexport default function fullscreenMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\n } = art;\n\n const screenfull = getScreenfull();\n\n const nativeScreenfull = (art) => {\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n async set(value) {\n if (value) {\n art.normalSize = 'fullscreen';\n art.aspectRatioReset = true;\n art.autoSize = false;\n await screenfull.request($player);\n addClass($player, 'art-fullscreen');\n art.emit('resize');\n art.emit('fullscreen', true);\n notice.show = '';\n } else {\n art.aspectRatioReset = true;\n art.autoSize = art.option.autoSize;\n await screenfull.exit();\n removeClass($player, 'art-fullscreen');\n art.emit('resize');\n art.emit('fullscreen');\n notice.show = '';\n }\n },\n });\n };\n\n const webkitScreenfull = (art) => {\n def(art, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n art.normalSize = 'fullscreen';\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n notice.show = '';\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n notice.show = '';\n }\n },\n });\n };\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art);\n } else {\n def(art, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen Not Supported');\n },\n });\n }\n\n // Asynchronous setting\n def(art, 'fullscreen', get(art, 'fullscreen'));\n });\n}\n","// https://github.com/sindresorhus/screenfull@6.0.1\n\nexport default function getScreenfull() {\n const methodMap = [\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror',\n ],\n // New WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n // Old WebKit\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror',\n ],\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror',\n ],\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError',\n ],\n ];\n\n const nativeAPI = (() => {\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n\n for (const methodList of methodMap) {\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries()) {\n returnValue[unprefixedMethods[index]] = method;\n }\n\n return returnValue;\n }\n }\n\n return false;\n })();\n\n const eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n };\n\n let screenfull = {\n // eslint-disable-next-line default-param-last\n request(element = document.documentElement, options) {\n return new Promise((resolve, reject) => {\n const onFullScreenEntered = () => {\n screenfull.off('change', onFullScreenEntered);\n resolve();\n };\n\n screenfull.on('change', onFullScreenEntered);\n\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit() {\n return new Promise((resolve, reject) => {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n\n const onFullScreenExit = () => {\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n\n screenfull.on('change', onFullScreenExit);\n\n const returnPromise = document[nativeAPI.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n },\n onchange(callback) {\n screenfull.on('change', callback);\n },\n onerror(callback) {\n screenfull.on('error', callback);\n },\n on(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.addEventListener(eventName, callback, false);\n }\n },\n off(event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) {\n document.removeEventListener(eventName, callback, false);\n }\n },\n raw: nativeAPI,\n };\n\n Object.defineProperties(screenfull, {\n isFullscreen: {\n get: () => Boolean(document[nativeAPI.fullscreenElement]),\n },\n element: {\n enumerable: true,\n get: () => document[nativeAPI.fullscreenElement],\n },\n isEnabled: {\n enumerable: true,\n // Coerce to boolean in case of old WebKit.\n get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n });\n\n if (!nativeAPI) {\n screenfull = { isEnabled: false };\n }\n\n return screenfull;\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art) {\n const {\n notice,\n template: { $player },\n } = art;\n\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n art.normalSize = 'fullscreenWeb';\n addClass($player, 'art-fullscreen-web');\n art.aspectRatioReset = true;\n art.autoSize = false;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n notice.show = '';\n } else {\n removeClass($player, 'art-fullscreen-web');\n art.aspectRatioReset = true;\n art.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n notice.show = '';\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(art, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n art.normalSize = 'pip';\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(art, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n art.normalSize = 'pip';\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art);\n } else {\n def(art, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP Not Supported');\n },\n });\n }\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art) {\n const { $video } = art.template;\n\n def(art, 'loaded', {\n get: () => art.loadedTime / $video.duration,\n });\n\n def(art, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art) {\n def(art, 'played', {\n get: () => art.currentTime / art.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art) {\n const { $video } = art.template;\n def(art, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art) {\n const { $container, $player, $video } = art.template;\n\n def(art, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n const keys = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n def(art, key, {\n get: () => {\n return art.rect[key];\n },\n });\n }\n\n def(art, 'x', {\n get: () => {\n return art.left + window.pageXOffset;\n },\n });\n\n def(art, 'y', {\n get: () => {\n return art.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(art, 'flip', {\n get() {\n return $player.dataset.flip || 'normal';\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = art.left;\n lastPlayerTop = art.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n art.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini Player'));\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n art.normalSize = 'mini';\n art.autoSize = false;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n art.mini = true;\n }\n } else {\n const top = window.innerHeight - art.height - 50;\n const left = window.innerWidth - art.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n art.aspectRatio = false;\n art.playbackRate = false;\n art.notice.show = '';\n art.emit('mini', true);\n } else {\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n art.aspectRatio = false;\n art.playbackRate = false;\n art.autoSize = option.autoSize;\n art.notice.show = '';\n art.emit('mini');\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMix(art) {\n let interval = [];\n def(art, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], art.duration));\n const end = clamp(value[1], start, art.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (art.currentTime < interval[0] || art.currentTime > interval[1]) {\n art.seek = interval[0];\n }\n }\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(art, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import { setStyle, hasClass, addClass, removeClass, def } from '../utils';\n\nexport default function autoHeightMix(art) {\n const {\n option,\n template: { $container, $video },\n } = art;\n\n const heightCache = $container.style.height;\n\n def(art, 'autoHeight', {\n get() {\n return hasClass($container, 'art-auto-height');\n },\n set(value) {\n if (value) {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n setStyle($container, 'height', height + 'px');\n addClass($container, 'art-auto-height');\n art.autoSize = option.autoSize;\n art.emit('autoHeight', height);\n } else {\n setStyle($container, 'height', heightCache);\n removeClass($container, 'art-auto-height');\n art.autoSize = option.autoSize;\n art.emit('autoHeight');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function themeMix(art) {\n const {\n option,\n template: { $player },\n } = art;\n\n def(art, 'theme', {\n get() {\n return getComputedStyle($player).getPropertyValue('--theme');\n },\n set(theme) {\n option.theme = theme;\n $player.style.setProperty('--theme', theme);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function titleMix(art) {\n def(art, 'title', {\n get() {\n return art.option.title;\n },\n set(title) {\n art.option.title = title;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function normalSizeMix(art) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb'];\n\n def(art, 'normalSize', {\n get() {\n return sizeProps.every((name) => !art[name]);\n },\n set(name) {\n sizeProps\n .filter((item) => item !== name)\n .forEach((item) => {\n if (art[item]) {\n art[item] = false;\n }\n });\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function subtitleOffsetMix(art) {\n const { clamp } = art.constructor.utils;\n const { notice, template, i18n } = art;\n\n let offsetCache = 0;\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n def(art, 'subtitleOffset', {\n get() {\n return offsetCache;\n },\n set(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n offsetCache = clamp(value, -5, 5);\n\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index];\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + offsetCache, 0, art.duration);\n cue.endTime = clamp(cuesCache[index].endTime + offsetCache, 0, art.duration);\n }\n\n art.subtitle.update();\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n art.emit('subtitleOffset', 0);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n art.attr(key, option.moreVideoAttr[key]);\n });\n\n if (option.muted) {\n art.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') {\n $video.volume = clamp(volumeStorage, 0, 1);\n }\n\n if (option.poster) {\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n if (option.theme) {\n art.theme = option.theme;\n }\n\n art.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle, isMobile } from '../utils';\n\nexport default function eventInit(art) {\n const {\n i18n,\n notice,\n option,\n constructor,\n events: { proxy },\n template: { $player, $video, $poster },\n } = art;\n\n let reconnectTime = 0;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n // art.on('video:abort', () => {\n\n // });\n\n art.on('video:canplay', () => {\n reconnectTime = 0;\n art.loading.show = false;\n });\n\n art.once('video:canplay', () => {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n art.isReady = true;\n art.emit('ready');\n });\n\n // art.on('video:canplaythrough', () => {\n\n // });\n\n // art.on('video:durationchange', () => {\n\n // });\n\n // art.on('video:emptied', () => {\n\n // });\n\n art.on('video:ended', () => {\n if (option.loop) {\n art.seek = 0;\n art.play();\n art.controls.show = false;\n art.mask.show = false;\n } else {\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:error', async () => {\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n reconnectTime += 1;\n art.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n } else {\n art.mask.show = true;\n art.loading.show = false;\n art.controls.show = true;\n addClass($player, 'art-error');\n await sleep(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n art.destroy(false);\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.autoSize = option.autoSize;\n if (isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n\n art.on('video:loadstart', () => {\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n\n // art.on('video:stalled', () => {\n\n // });\n\n // art.on('video:suspend', () => {\n\n // });\n\n art.on('video:timeupdate', () => {\n art.mask.show = false;\n });\n\n // art.on('video:volumechange', () => {\n\n // });\n\n art.on('video:waiting', () => {\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n","import { errorHandle, addClass, removeClass, isMobile } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n constructor,\n events: { proxy },\n template: { $player },\n } = art;\n\n let activeTime = Date.now();\n\n proxy($player, ['click', 'mousemove', 'touchstart', 'touchmove'], () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n activeTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (!art.isInput && art.playing && this.show && Date.now() - activeTime >= constructor.CONTROL_HIDE_TIME) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n this.init();\n }\n\n init() {\n const { option } = this.art;\n\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive || isMobile,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot || isMobile,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 60,\n }),\n );\n\n for (let index = 0; index < option.controls.length; index++) {\n this.add(option.controls[index]);\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle, inverseClass } from './dom';\nimport validator from 'option-validator';\nimport { ComponentOption } from '../scheme';\nimport { has, def } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n validator(option, ComponentOption);\n\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n\n def(this, name, {\n value: $ref,\n });\n\n return $ref;\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector\n .map(\n (item, index) =>\n `
${\n item.html\n }
`,\n )\n .join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n const left = getStyle($ref, 'width') / 2 - getStyle($list, 'width') / 2;\n $list.style.left = `${left}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($list, 'click', async (event) => {\n const path = event.composedPath() || [];\n const $item = path.find((item) => hasClass(item, 'art-selector-item'));\n if (!$item) return;\n inverseClass($item, 'art-current');\n const index = Number($item.dataset.index);\n const find = option.selector[index] || {};\n $value.innerText = $item.innerText;\n if (option.onSelect) {\n const result = await option.onSelect.call(this.art, find, $item, event);\n if (typeof result === 'string' || typeof result === 'number') {\n $value.innerHTML = result;\n }\n }\n setLeft();\n this.art.emit('selector', find, $item);\n });\n }\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreen(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n const $fullscreenOn = append($control, icons.fullscreenOn);\n const $fullscreenOff = append($control, icons.fullscreenOff);\n setStyle($fullscreenOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreen = !art.fullscreen;\n });\n\n art.on('fullscreen', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Fullscreen'));\n setStyle($fullscreenOn, 'display', 'none');\n setStyle($fullscreenOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Fullscreen'));\n setStyle($fullscreenOn, 'display', 'inline-flex');\n setStyle($fullscreenOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n const $fullscreenWebOn = append($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = append($control, icons.fullscreenWebOff);\n setStyle($fullscreenWebOff, 'display', 'none');\n\n proxy($control, 'click', () => {\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n\n art.on('fullscreenWeb', (value) => {\n if (value) {\n tooltip($control, i18n.get('Exit Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'none');\n setStyle($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n tooltip($control, i18n.get('Web Fullscreen'));\n setStyle($fullscreenWebOn, 'display', 'inline-flex');\n setStyle($fullscreenWebOff, 'display', 'none');\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n art.pip = !art.pip;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n art.play();\n });\n\n proxy($pause, 'click', () => {\n art.pause();\n });\n\n function showPlay() {\n setStyle($play, 'display', 'flex');\n setStyle($pause, 'display', 'none');\n }\n\n function showPause() {\n setStyle($play, 'display', 'none');\n setStyle($pause, 'display', 'flex');\n }\n\n if (art.playing) {\n showPause();\n } else {\n showPlay();\n }\n\n art.on('video:playing', () => {\n showPause();\n });\n\n art.on('video:pause', () => {\n showPlay();\n });\n },\n });\n}\n","import { query, clamp, append, setStyle, setStyles, secondToTime, includeFromEvent, isMobile } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = $progress.getBoundingClientRect();\n const eventLeft = event.pageX;\n const width = clamp(eventLeft - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * art.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(options) {\n return (art) => {\n const {\n icons,\n option,\n events: { proxy },\n } = art;\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n setStyle($played, 'backgroundColor', 'var(--theme)');\n\n let indicatorSize = art.constructor.INDICATOR_SIZE;\n\n if (icons.indicator) {\n indicatorSize = art.constructor.INDICATOR_SIZE_ICON;\n append($indicator, icons.indicator);\n } else {\n setStyles($indicator, {\n backgroundColor: 'var(--theme)',\n });\n }\n\n if (isMobile) {\n indicatorSize = art.constructor.INDICATOR_SIZE_MOBILE;\n if (icons.indicator) {\n indicatorSize = art.constructor.INDICATOR_SIZE_MOBILE_ICON;\n }\n }\n\n setStyles($indicator, {\n left: `-${indicatorSize / 2}px`,\n width: `${indicatorSize}px`,\n height: `${indicatorSize}px`,\n });\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle($indicator, 'left', `calc(${percentage * 100}% - ${indicatorSize / 2}px)`);\n }\n }\n\n art.on('video:loadedmetadata', () => {\n for (let index = 0; index < option.highlight.length; index++) {\n const item = option.highlight[index];\n const left = (clamp(item.time, 0, art.duration) / art.duration) * 100;\n append(\n $highlight,\n ``,\n );\n }\n });\n\n setBar('loaded', art.loaded);\n\n art.on('setBar', (type, percentage) => {\n setBar(type, percentage);\n });\n\n art.on('video:progress', () => {\n setBar('loaded', art.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', art.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n art.seek = second;\n }\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n art.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n };\n };\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return (art) => ({\n ...option,\n style: {\n cursor: 'auto',\n },\n mounted: ($control) => {\n function getTime() {\n const newTime = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n\n const events = ['video:loadedmetadata', 'video:timeupdate', 'video:progress'];\n for (let index = 0; index < events.length; index++) {\n art.on(events[index], getTime);\n }\n },\n });\n}\n","import { append, clamp, tooltip, setStyle, isMobile } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = art.constructor.VOLUME_PANEL_WIDTH;\n const handleWidth = art.constructor.VOLUME_HANDLE_WIDTH;\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (art.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(art.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(art.volume);\n });\n\n proxy($volume, 'click', () => {\n art.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n art.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n art.muted = false;\n art.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n art.muted = false;\n art.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n art.setting.toggle = true;\n });\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(options) {\n return (art) => ({\n ...options,\n mounted: ($control) => {\n const {\n option,\n template: { $progress, $video },\n events: { proxy, loadImg },\n } = art;\n\n let image = null;\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, number, column } = option.thumbnails;\n const width = image.naturalWidth / column;\n const height = width / ($video.videoWidth / $video.videoHeight);\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', async (event) => {\n if (!loading) {\n loading = true;\n const img = await loadImg(option.thumbnails.url);\n image = img;\n isLoad = true;\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n art.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.html : '',\n selector: qualityOption,\n onSelect(item) {\n art.switchQuality(item.url, item.html);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / art.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / art.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { setStyles, includeFromEvent, isMobile } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport flip from './flip';\nimport info from './info';\nimport version from './version';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n\n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = this.art;\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n index: 30,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 40,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 50,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n for (let index = 0; index < option.contextmenu.length; index++) {\n this.add(option.contextmenu[index]);\n }\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n this.art.on('blur', () => {\n this.show = false;\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n } = art;\n return {\n ...option,\n html: `${i18n.get('Play Speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.playbackRate = Number(value);\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n art.on('playbackRate', (value) => {\n const $current = queryAll('span', $panel).find((item) => Number(item.dataset.value) === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.aspectRatio = value;\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n art.on('aspectRatio', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return (art) => {\n const { i18n } = art;\n return {\n ...option,\n html: `${i18n.get('Video Flip')}:\n ${i18n.get('Normal')}\n ${i18n.get('Horizontal')}\n ${i18n.get('Vertical')}\n `,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.flip = value;\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n art.on('flip', (value) => {\n const $current = queryAll('span', $panel).find((item) => item.dataset.value === value);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video Info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: `ArtPlayer ${process.env.APP_VER}`,\n };\n}\n","export default function close(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Close'),\n click: contextmenu => {\n contextmenu.show = false;\n },\n });\n}\n","import { queryAll, isMobile } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.name = 'info';\n \n if (!isMobile) {\n this.init();\n }\n }\n\n init() {\n const {\n constructor,\n events: { proxy },\n template: { $infoPanel, $infoClose, $video },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const $types = queryAll('[data-video]', $infoPanel) || [];\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n for (let index = 0; index < $types.length; index++) {\n const item = $types[index];\n const value = $video[item.dataset.video];\n const innerText = typeof value === 'number' ? value.toFixed(2) : value;\n if (item.innerText !== innerText) {\n item.innerText = innerText;\n }\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n\n loop();\n }\n}\n","import { setStyle, setStyles, srtToVtt, vttToBlob, getExt, assToVtt, escape, errorHandle } from './utils';\nimport Component from './utils/component';\nimport validator from 'option-validator';\nimport scheme from './scheme';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n this.init(art.option.subtitle);\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n set url(url) {\n this.switch(url);\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = { ...option.subtitle, ...newOption, url };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) {\n notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n }\n return subUrl;\n }\n\n init(subtitleOption) {\n validator(subtitleOption, scheme.subtitle);\n if (!subtitleOption.url) return;\n\n const {\n notice,\n events: { proxy },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n this.style(subtitleOption.style);\n\n errorHandle(window.fetch, 'fetch not support');\n return fetch(subtitleOption.url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n errorHandle(window.TextDecoder, 'TextDecoder not support');\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', subtitleOption.url);\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return subtitleOption.url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n });\n }\n\n destroy() {\n for (let index = 0; index < this.destroyEvents.length; index++) {\n this.destroyEvents[index]();\n }\n }\n}\n","import { includeFromEvent, isMobile } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n constructor,\n template: { $player, $video },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isInput = event.target.tagName === 'INPUT';\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isInput = false;\n art.isFocus = false;\n art.emit('blur');\n }\n });\n\n let clickTime = 0;\n events.proxy($video, 'click', () => {\n const now = Date.now();\n\n if (now - clickTime <= constructor.DB_CLICE_TIME) {\n art.emit('dblclick');\n\n if (isMobile) {\n if (!art.isLock) {\n art.toggle();\n }\n } else {\n art.fullscreen = !art.fullscreen;\n }\n } else {\n art.emit('click');\n\n if (!isMobile) {\n art.toggle();\n }\n }\n\n clickTime = now;\n });\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template;\n\n events.hover(\n $player,\n () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option } = art;\n\n const resizeFn = throttle(() => {\n if (art.normalSize) {\n art.autoSize = option.autoSize;\n }\n art.aspectRatioReset = true;\n art.notice.show = '';\n art.emit('resize');\n }, art.constructor.RESIZE_TIME);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => {\n resizeFn();\n });\n }\n}\n","import { clamp, secondToTime, isMobile, includeFromEvent } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $bottom, $controls } = art.template;\n\n let isDroging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n\n const onTouchStart = (event) => {\n if (event.touches.length === 1 && !art.isLock) {\n isDroging = true;\n const { clientX, clientY } = event.touches[0];\n startX = clientX;\n startY = clientY;\n startTime = art.currentTime;\n }\n };\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDroging && art.duration) {\n const autoOrientation = art.plugins.autoOrientation && art.plugins.autoOrientation.state;\n const { clientX, clientY } = event.touches[0];\n const ratioX = clamp((clientX - startX) / art.width, -1, 1);\n const ratioY = clamp((clientY - startY) / art.height, -1, 1);\n const ratio = autoOrientation ? ratioY : ratioX;\n const currentTime = clamp(startTime + (art.duration * ratio) / 2, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1));\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`;\n }\n };\n\n const onTouchEnd = () => {\n if (isDroging) {\n startX = 0;\n startY = 0;\n startTime = 0;\n isDroging = false;\n }\n };\n\n events.proxy($bottom, 'touchstart', (event) => {\n if (!includeFromEvent(event, $controls)) {\n onTouchStart(event);\n }\n });\n\n events.proxy($bottom, 'touchmove', onTouchMove);\n events.proxy($video, 'touchstart', onTouchStart);\n events.proxy($video, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n option,\n constructor,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state;\n }\n });\n}\n","import { isMobile } from './utils';\n\nexport default class Hotkey {\n constructor(art) {\n this.art = art;\n this.keys = {};\n\n if (art.option.hotkey && !isMobile) {\n this.init();\n }\n }\n\n init() {\n const { proxy } = this.art.events;\n\n this.add(27, () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n this.art.toggle();\n });\n\n this.add(37, () => {\n this.art.backward = 5;\n });\n\n this.add(38, () => {\n this.art.volume += 0.1;\n });\n\n this.add(39, () => {\n this.art.forward = 5;\n });\n\n this.add(40, () => {\n this.art.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n for (let index = 0; index < events.length; index++) {\n events[index].call(this.art, event);\n }\n this.art.emit('hotkey', event);\n }\n }\n }\n });\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n return this;\n }\n\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) {\n this.keys[key].splice(index, 1);\n }\n }\n return this;\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n template: { $layer },\n } = art;\n\n this.name = 'layer';\n this.$parent = $layer;\n\n for (let index = 0; index < option.layers.length; index++) {\n this.add(option.layers[index]);\n }\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Loading extends Component {\n constructor(art) {\n super(art);\n this.name = 'loading';\n append(art.template.$loading, art.icons.loading);\n }\n}\n","import { addClass, removeClass } from './utils';\n\nexport default class Notice {\n constructor(art) {\n this.art = art;\n this.timer = null;\n }\n\n set show(msg) {\n const {\n constructor,\n template: { $player, $noticeInner },\n } = this.art;\n\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n addClass($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n $noticeInner.innerText = '';\n removeClass($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else {\n removeClass($player, 'art-notice-show');\n }\n }\n}\n","import { append, setStyle } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'mask';\n const { template, icons, events } = art;\n\n const $state = append(template.$state, icons.state);\n const $error = append(template.$state, icons.error);\n\n setStyle($error, 'display', 'none');\n\n art.on('destroy', () => {\n setStyle($state, 'display', 'none');\n setStyle($error, 'display', null);\n });\n\n events.proxy(template.$state, 'click', () => art.play());\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from 'bundle-text:./loading.svg';\nimport state from 'bundle-text:./state.svg';\nimport check from 'bundle-text:./check.svg';\nimport play from 'bundle-text:./play.svg';\nimport pause from 'bundle-text:./pause.svg';\nimport volume from 'bundle-text:./volume.svg';\nimport volumeClose from 'bundle-text:./volume-close.svg';\nimport screenshot from 'bundle-text:./screenshot.svg';\nimport setting from 'bundle-text:./setting.svg';\nimport arrowLeft from 'bundle-text:./arrow-left.svg';\nimport arrowRight from 'bundle-text:./arrow-right.svg';\nimport playbackRate from 'bundle-text:./playback-rate.svg';\nimport aspectRatio from 'bundle-text:./aspect-ratio.svg';\nimport config from 'bundle-text:./config.svg';\nimport pip from 'bundle-text:./pip.svg';\nimport lock from 'bundle-text:./lock.svg';\nimport unlock from 'bundle-text:./unlock.svg';\nimport fullscreenOff from 'bundle-text:./fullscreen-off.svg';\nimport fullscreenOn from 'bundle-text:./fullscreen-on.svg';\nimport fullscreenWebOff from 'bundle-text:./fullscreen-web-off.svg';\nimport fullscreenWebOn from 'bundle-text:./fullscreen-web-on.svg';\nimport switchOn from 'bundle-text:./switch-on.svg';\nimport switchOff from 'bundle-text:./switch-off.svg';\nimport flip from 'bundle-text:./flip.svg';\nimport error from 'bundle-text:./error.svg';\nimport close from 'bundle-text:./close.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n check,\n volume,\n volumeClose,\n screenshot,\n setting,\n pip,\n arrowLeft,\n arrowRight,\n playbackRate,\n aspectRatio,\n config,\n lock,\n flip,\n unlock,\n fullscreenOff,\n fullscreenOn,\n fullscreenWebOff,\n fullscreenWebOn,\n switchOn,\n switchOff,\n error,\n close,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","module.exports = \"48351807f9d17b85\";","module.exports = \"b521bd87173f07f8\";","module.exports = \"7d4d567c33bb525d\";","module.exports = \"d9cf5218ba4119f7\";","module.exports = \"1b6f706023152499\";","module.exports = \"ccea5e85f0721ac8\";","module.exports = \"7b07ee0d42ef7999\";","module.exports = \"d10cbdd15b9c3ccc\";","module.exports = \"ce7e5747dbeebf9c\";","module.exports = \"31d0f450fd3142ae\";","module.exports = \"607a9d3122cadc95\";","module.exports = \"3f2a5aef9e446414\";","module.exports = \"a3c2d6619a4bebaf\";","module.exports = \"5daee943371cdae2\";","module.exports = \"e49c27bbc31901ab\";","module.exports = \"0fd94c9b6ccce96e\";","module.exports = \"721f903406a7a9bd\";","module.exports = \"133f4e7286a8c946\";","module.exports = \"3ad4b0d674115f9f\";","module.exports = \"66f3df095ff2cfc9\";","module.exports = \"6a9b55926d7ffbd8\";","module.exports = \"ed05d01f0639f8dd\";","module.exports = \"42b075eebf138ccb\";","module.exports = \"c9dbc85ae2682806\";","module.exports = \"4e1fab3a25abda1e\";","module.exports = \"ef31f094274e03ea\";","import flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\nimport subtitleOffset from './subtitleOffset';\nimport Component from '../utils/component';\nimport { append, addClass, setStyle, inverseClass, includeFromEvent, def, has } from '../utils';\n\nfunction makeRecursion(option, parentItem, parentList) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n item.$parentItem = parentItem;\n item.$parentList = parentList;\n if (item.selector) {\n makeRecursion(item.selector, item, option);\n }\n }\n return option;\n}\n\nfunction isStringOrNumber(val) {\n return ['string', 'number'].includes(typeof val);\n}\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n events: { proxy },\n template: { $setting, $player },\n } = art;\n\n this.name = 'setting';\n this.$parent = $setting;\n\n this.option = [];\n this.events = [];\n this.cache = new Map();\n\n if (option.setting) {\n if (option.playbackRate) {\n this.option.push(playbackRate(art));\n }\n\n if (option.aspectRatio) {\n this.option.push(aspectRatio(art));\n }\n\n if (option.flip) {\n this.option.push(flip(art));\n }\n\n if (option.subtitleOffset) {\n this.option.push(subtitleOffset(art));\n }\n\n for (let index = 0; index < option.settings.length; index++) {\n this.option.push(option.settings[index]);\n }\n\n this.option = makeRecursion(this.option);\n\n this.init(this.option);\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false;\n this.init(this.option);\n }\n });\n\n proxy($player, 'click', (event) => {\n if (\n this.show &&\n !includeFromEvent(event, art.controls.setting) &&\n !includeFromEvent(event, this.$parent)\n ) {\n this.show = false;\n this.init(this.option);\n }\n });\n }\n }\n\n add(callback) {\n if (typeof callback === 'function') {\n this.option.push(callback(this.art));\n } else {\n this.option.push(callback);\n }\n\n this.cache = new Map();\n this.events.forEach((event) => event());\n this.events = [];\n this.$parent.innerHTML = '';\n this.option = makeRecursion(this.option);\n this.init(this.option);\n }\n\n creatHeader(item) {\n const {\n icons,\n events: { proxy },\n } = this.art;\n\n const $item = document.createElement('div');\n addClass($item, 'art-setting-item');\n addClass($item, 'art-setting-item-back');\n const $left = append($item, '
');\n const $icon = document.createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n append($icon, icons.arrowLeft);\n append($left, $icon);\n append($left, item.$parentItem.html);\n\n const event = proxy($item, 'click', () => {\n this.init(item.$parentList);\n });\n\n this.events.push(event);\n\n return $item;\n }\n\n creatItem(type, item) {\n const {\n icons,\n events: { proxy },\n } = this.art;\n\n const $item = document.createElement('div');\n addClass($item, 'art-setting-item');\n\n if (isStringOrNumber(item.name)) {\n $item.dataset.name = item.name;\n }\n\n if (isStringOrNumber(item.value)) {\n $item.dataset.value = item.value;\n }\n\n const $left = append($item, '
');\n const $right = append($item, '
');\n\n const $icon = document.createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n\n switch (type) {\n case 'switch':\n case 'range':\n append($icon, isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config);\n break;\n case 'selector':\n if (item.selector && item.selector.length) {\n append(\n $icon,\n isStringOrNumber(item.icon) || item.icon instanceof Element ? item.icon : icons.config,\n );\n } else {\n append($icon, icons.check);\n }\n break;\n default:\n break;\n }\n\n append($left, $icon);\n item.$icon = $icon;\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $icon.innerHTML = value;\n }\n },\n });\n\n const $html = document.createElement('div');\n addClass($html, 'art-setting-item-left-text');\n append($html, item.html || '');\n append($left, $html);\n item.$html = $html;\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $html.innerHTML = value;\n }\n },\n });\n\n const $tooltip = document.createElement('div');\n addClass($tooltip, 'art-setting-item-right-tooltip');\n append($tooltip, item.tooltip || '');\n append($right, $tooltip);\n item.$tooltip = $tooltip;\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML;\n },\n set(value) {\n if (isStringOrNumber(value)) {\n $tooltip.innerHTML = value;\n }\n },\n });\n\n switch (type) {\n case 'switch': {\n const $state = document.createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $switchOn = append($state, icons.switchOn);\n const $switchOff = append($state, icons.switchOff);\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none');\n append($right, $state);\n item.$switch = item.switch;\n\n def(item, 'switch', {\n configurable: true,\n get() {\n return item.$switch;\n },\n set(value) {\n item.$switch = value;\n if (value) {\n setStyle($switchOff, 'display', 'none');\n setStyle($switchOn, 'display', null);\n } else {\n setStyle($switchOff, 'display', null);\n setStyle($switchOn, 'display', 'none');\n }\n },\n });\n break;\n }\n case 'range':\n {\n const $state = document.createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $range = append($state, '');\n $range.value = item.range[0] || 0;\n $range.min = item.range[1] || 0;\n $range.max = item.range[2] || 10;\n $range.step = item.range[3] || 1;\n addClass($range, 'art-setting-range');\n append($right, $state);\n item.$range = $range;\n\n def(item, 'range', {\n configurable: true,\n get() {\n return $range.valueAsNumber;\n },\n set(value) {\n $range.value = Number(value);\n },\n });\n }\n break;\n case 'selector':\n if (item.selector && item.selector.length) {\n const $state = document.createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n append($state, icons.arrowRight);\n append($right, $state);\n }\n break;\n default:\n break;\n }\n\n switch (type) {\n case 'switch': {\n if (item.onSwitch) {\n const event = proxy($item, 'click', async (event) => {\n item.switch = await item.onSwitch.call(this.art, item, $item, event);\n });\n\n this.events.push(event);\n }\n break;\n }\n case 'range': {\n if (item.onRange && item.$range) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.tooltip = await item.onRange.call(this.art, item, $item, event);\n });\n\n this.events.push(event);\n }\n break;\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector && item.selector.length) {\n this.init(item.selector, item.width);\n } else {\n inverseClass($item, 'art-current');\n\n if (item.$parentList) {\n this.init(item.$parentList);\n }\n\n if (item.$parentItem && item.$parentItem.onSelect) {\n const result = await item.$parentItem.onSelect.call(this.art, item, $item, event);\n if (item.$parentItem.$tooltip && isStringOrNumber(result)) {\n item.$parentItem.$tooltip.innerHTML = result;\n }\n }\n }\n });\n\n this.events.push(event);\n\n if (item.default) {\n addClass($item, 'art-current');\n }\n }\n break;\n default:\n break;\n }\n\n return $item;\n }\n\n init(option, width) {\n const { constructor } = this.art;\n\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n inverseClass($panel, 'art-current');\n setStyle(this.$parent, 'width', `${$panel.dataset.width}px`);\n setStyle(this.$parent, 'height', `${$panel.dataset.height}px`);\n } else {\n const $panel = document.createElement('div');\n addClass($panel, 'art-setting-panel');\n $panel.dataset.width = width || constructor.SETTING_WIDTH;\n $panel.dataset.height = option.length * constructor.SETTING_ITEM_HEIGHT;\n\n if (option[0] && option[0].$parentItem) {\n append($panel, this.creatHeader(option[0]));\n $panel.dataset.height = Number($panel.dataset.height) + constructor.SETTING_ITEM_HEIGHT;\n }\n\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n if (has(item, 'switch')) {\n append($panel, this.creatItem('switch', item));\n } else if (has(item, 'range')) {\n append($panel, this.creatItem('range', item));\n } else {\n append($panel, this.creatItem('selector', item));\n }\n }\n\n append(this.$parent, $panel);\n this.cache.set(option, $panel);\n inverseClass($panel, 'art-current');\n setStyle(this.$parent, 'width', `${$panel.dataset.width}px`);\n setStyle(this.$parent, 'height', `${$panel.dataset.height}px`);\n\n if (option[0] && option[0].$parentItem && option[0].$parentItem.mounted) {\n option[0].$parentItem.mounted.call(this.art, $panel, option[0].$parentItem);\n }\n }\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(art) {\n const { i18n, icons, constructor } = art;\n\n const keys = {\n normal: 'Normal',\n horizontal: 'Horizontal',\n vertical: 'Vertical',\n };\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = i18n.get(keys[value]);\n const $current = queryAll('.art-setting-item', $panel).find((item) => item.dataset.value === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Video Flip'),\n tooltip: i18n.get(keys[art.flip]),\n icon: icons.flip,\n selector: Object.keys(keys).map((item) => {\n return {\n value: item,\n default: item === art.flip,\n html: i18n.get(keys[item]),\n };\n }),\n onSelect(item) {\n art.flip = item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.flip);\n art.on('flip', () => {\n update($panel, item.$tooltip, art.flip);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(art) {\n const { i18n, icons, constructor } = art;\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => item.dataset.value === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ['default', '4:3', '16:9'].map((item) => {\n return {\n value: item,\n default: item === art.aspectRatio,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.aspectRatio = item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.aspectRatio);\n art.on('aspectRatio', () => {\n update($panel, item.$tooltip, art.aspectRatio);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(art) {\n const { i18n, icons, constructor } = art;\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value;\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => Number(item.dataset.value) === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: [0.5, 0.75, 1.0, 1.25, 1.5, 2.0].map((item) => {\n return {\n value: item,\n default: item === art.playbackRate,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.playbackRate = item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.playbackRate);\n art.on('playbackRate', () => {\n update($panel, item.$tooltip, art.playbackRate);\n });\n },\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\n\n function getI18n(value) {\n return value === 0 ? i18n.get('Normal') : value;\n }\n\n function update($panel, $tooltip, value) {\n if ($tooltip) $tooltip.innerText = getI18n(value);\n const $current = queryAll('.art-setting-item', $panel).find((item) => Number(item.dataset.value) === value);\n if ($current) inverseClass($current, 'art-current');\n }\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n html: i18n.get('Subtitle Offset'),\n tooltip: getI18n(art.subtitleOffset),\n icon: icons.subtitle,\n selector: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5].map((item) => {\n return {\n value: item,\n default: item === art.subtitleOffset,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.subtitleOffset = item.value;\n },\n mounted: ($panel, item) => {\n update($panel, item.$tooltip, art.subtitleOffset);\n art.on('subtitleOffset', () => {\n update($panel, item.$tooltip, art.subtitleOffset);\n });\n },\n };\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { errorHandle, isMobile, has, def } from '../utils';\nimport miniProgressBar from './miniProgressBar';\nimport autoOrientation from './autoOrientation';\nimport autoPlayback from './autoPlayback';\nimport fastForward from './fastForward';\nimport lock from './lock';\n\nexport default class Plugins {\n constructor(art) {\n this.art = art;\n this.id = 0;\n\n const { option } = art;\n\n if (option.miniProgressBar && !option.isLive) {\n this.add(miniProgressBar);\n }\n\n if (option.lock && isMobile) {\n this.add(lock);\n }\n\n if (option.autoPlayback) {\n this.add(autoPlayback);\n }\n\n if (option.autoOrientation && isMobile) {\n this.add(autoOrientation);\n }\n\n if (option.fastForward && isMobile && !option.isLive) {\n this.add(fastForward);\n }\n\n for (let index = 0; index < option.plugins.length; index++) {\n this.add(option.plugins[index]);\n }\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","export default function miniProgressBar(art) {\n art.on('ready', () => {\n art.layers.add({\n name: 'miniProgressBar',\n mounted($progressBar) {\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${art.played * 100}%`;\n });\n\n art.on('setBar', (type, percentage) => {\n if (type === 'played') {\n $progressBar.style.width = `${percentage * 100}%`;\n }\n });\n },\n });\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","import { setStyle, addClass, removeClass, hasClass } from '../utils';\n\nexport default function autoOrientation(art) {\n const {\n option,\n constructor,\n template: { $player, $video },\n } = art;\n\n art.on('fullscreenWeb', (state) => {\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(() => {\n setStyle($player, 'width', `${viewHeight}px`);\n setStyle($player, 'height', `${viewWidth}px`);\n setStyle($player, 'transform-origin', '0 0');\n setStyle($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n addClass($player, 'art-auto-orientation');\n art.emit('resize');\n }, constructor.MOBILE_AUTO_ORIENTATION_TIME);\n }\n } else {\n if (hasClass($player, 'art-auto-orientation')) {\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n setStyle($player, 'transform', null);\n setStyle($player, 'transform-origin', null);\n removeClass($player, 'art-auto-orientation');\n art.aspectRatioReset = true;\n art.autoSize = option.autoSize;\n art.notice.show = '';\n art.emit('resize');\n }\n }\n });\n\n art.on('fullscreen', async (state) => {\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (\n (videoWidth > videoHeight && viewWidth < viewHeight) ||\n (videoWidth < videoHeight && viewWidth > viewHeight)\n ) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n addClass($player, 'art-auto-orientation-fullscreen');\n }\n } else {\n if (hasClass($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n removeClass($player, 'art-auto-orientation-fullscreen');\n }\n }\n });\n\n return {\n name: 'autoOrientation',\n get state() {\n return hasClass($player, 'art-auto-orientation');\n },\n };\n}\n","import { secondToTime, setStyle, query, append } from '../utils';\n\nexport default function autoPlayback(art) {\n const {\n i18n,\n icons,\n storage,\n constructor,\n events: { proxy },\n template: { $poster },\n } = art;\n\n const $autoPlayback = art.layers.add({\n name: 'autoPlayback',\n html: `\n
\n
\n
\n `,\n });\n\n const $last = query('.art-autoPlayback-last', $autoPlayback);\n const $jump = query('.art-autoPlayback-jump', $autoPlayback);\n const $close = query('.art-autoPlayback-close', $autoPlayback);\n\n art.on('video:timeupdate', () => {\n const times = storage.get('times') || {};\n const keys = Object.keys(times);\n if (keys.length > constructor.AUTO_PLAYBACK_MAX) {\n delete times[keys[0]];\n }\n times[art.option.url] = art.currentTime;\n storage.set('times', times);\n });\n\n art.on('ready', () => {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.url];\n if (currentTime) {\n append($close, icons.close);\n setStyle($autoPlayback, 'display', 'flex');\n\n $last.innerText = `${i18n.get('Last Seen')} ${secondToTime(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n\n proxy($close, 'click', () => {\n setStyle($autoPlayback, 'display', 'none');\n });\n\n proxy($jump, 'click', () => {\n art.seek = currentTime;\n art.play();\n setStyle($poster, 'display', 'none');\n setStyle($autoPlayback, 'display', 'none');\n });\n\n art.on('video:timeupdate', () => {\n setStyle($autoPlayback, 'display', 'none');\n });\n }\n });\n\n return {\n name: 'autoPlayback',\n get times() {\n return storage.get('times') || {};\n },\n clear() {\n return storage.del('times');\n },\n };\n}\n","import { hasClass, addClass, removeClass } from '../utils';\n\nexport default function fastForward(art) {\n const {\n constructor,\n events: { proxy },\n template: { $player, $video },\n } = art;\n\n let timer = null;\n let isPress = false;\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n addClass($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n }\n };\n\n const onStop = () => {\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = 1;\n removeClass($player, 'art-fast-forward');\n }\n };\n\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n\n return {\n name: 'fastForward',\n get state() {\n return hasClass($player, 'art-fast-forward');\n },\n };\n}\n","import { append, setStyle, hasClass, addClass, removeClass } from '../utils';\n\nexport default function lock(art) {\n const {\n layers,\n icons,\n template: { $player },\n } = art;\n\n layers.add({\n name: 'lock',\n mounted($el) {\n const $lock = append($el, icons.lock);\n const $unlock = append($el, icons.unlock);\n setStyle($lock, 'display', 'none');\n\n art.on('lock', (state) => {\n if (state) {\n setStyle($lock, 'display', 'inline-flex');\n setStyle($unlock, 'display', 'none');\n } else {\n setStyle($lock, 'display', 'none');\n setStyle($unlock, 'display', 'inline-flex');\n }\n });\n },\n click() {\n if (hasClass($player, 'art-lock')) {\n removeClass($player, 'art-lock');\n this.isLock = false;\n art.emit('lock', false);\n } else {\n addClass($player, 'art-lock');\n this.isLock = true;\n art.emit('lock', true);\n }\n },\n });\n\n return {\n name: 'lock',\n get state() {\n return hasClass($player, 'art-lock');\n },\n };\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n for (let index = 0; index < config.events.length; index++) {\n proxy($video, config.events[index], (event) => {\n art.emit(`video:${event.type}`, event);\n });\n }\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/packages/artplayer/package.json b/packages/artplayer/package.json index 8d1f797f7..fc9fab91d 100644 --- a/packages/artplayer/package.json +++ b/packages/artplayer/package.json @@ -1,7 +1,7 @@ { "license": "MIT", "name": "artplayer", - "version": "4.5.0", + "version": "4.5.1", "main": "dist/artplayer.js", "types": "types/artplayer.d.ts", "homepage": "https://artplayer.org", diff --git a/packages/artplayer/src/i18n/cs.json b/packages/artplayer/src/i18n/cs.json index e29fcbbdc..454908c93 100644 --- a/packages/artplayer/src/i18n/cs.json +++ b/packages/artplayer/src/i18n/cs.json @@ -31,5 +31,6 @@ "PIP Not Supported": "Režim PIP není podporován", "Fullscreen Not Supported": "Režim celé obrazovky není podporován", "Subtitle Offset": "Posun titulků", - "Auto playback at": "Automatické přehrávání za" + "Last Seen": "Naposledy viděn", + "Jump Play": "Hra na skok" } \ No newline at end of file diff --git a/packages/artplayer/src/i18n/pl.json b/packages/artplayer/src/i18n/pl.json index 449cda029..82b2865e8 100644 --- a/packages/artplayer/src/i18n/pl.json +++ b/packages/artplayer/src/i18n/pl.json @@ -31,5 +31,6 @@ "PIP Not Supported": "Tryb PiP nieobsługiwany", "Fullscreen Not Supported": "Pełny ekran nieobsługiwany", "Subtitle Offset": "Przesunięcie napisów", - "Auto playback at": "Automatyczne odtwarzanie za" + "Last Seen": "Ostatnio widziany", + "Jump Play": "Skocz do gry" } \ No newline at end of file diff --git a/packages/artplayer/src/i18n/zh-cn.json b/packages/artplayer/src/i18n/zh-cn.json index 59b52c52f..e5039832e 100644 --- a/packages/artplayer/src/i18n/zh-cn.json +++ b/packages/artplayer/src/i18n/zh-cn.json @@ -31,5 +31,6 @@ "PIP Not Supported": "不支持画中画", "Fullscreen Not Supported": "不支持全屏", "Subtitle Offset": "字幕偏移", - "Auto playback at": "已为您定位至" + "Last Seen": "上次看到", + "Jump Play": "跳转播放" } \ No newline at end of file diff --git a/packages/artplayer/src/i18n/zh-tw.json b/packages/artplayer/src/i18n/zh-tw.json index 45520ac15..6f5bf6c5b 100644 --- a/packages/artplayer/src/i18n/zh-tw.json +++ b/packages/artplayer/src/i18n/zh-tw.json @@ -31,5 +31,6 @@ "PIP Not Supported": "不支持畫中畫", "Fullscreen Not Supported": "不支持全屏", "Subtitle Offset": "字幕偏移", - "Auto playback at": "已為您定位至" + "Last Seen": "上次看到", + "Jump Play": "跳轉播放" } \ No newline at end of file diff --git a/packages/artplayer/src/icons/close.svg b/packages/artplayer/src/icons/close.svg new file mode 100644 index 000000000..bfddff6f0 --- /dev/null +++ b/packages/artplayer/src/icons/close.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/packages/artplayer/src/icons/index.js b/packages/artplayer/src/icons/index.js index b9401fef2..7f27aa02d 100644 --- a/packages/artplayer/src/icons/index.js +++ b/packages/artplayer/src/icons/index.js @@ -24,6 +24,7 @@ import switchOn from 'bundle-text:./switch-on.svg'; import switchOff from 'bundle-text:./switch-off.svg'; import flip from 'bundle-text:./flip.svg'; import error from 'bundle-text:./error.svg'; +import close from 'bundle-text:./close.svg'; export default class Icons { constructor(art) { @@ -53,6 +54,7 @@ export default class Icons { switchOn, switchOff, error, + close, ...art.option.icons, }; diff --git a/packages/artplayer/src/plugins/autoPlayback.js b/packages/artplayer/src/plugins/autoPlayback.js index c0f92872f..c21e2274b 100644 --- a/packages/artplayer/src/plugins/autoPlayback.js +++ b/packages/artplayer/src/plugins/autoPlayback.js @@ -1,17 +1,34 @@ -import { secondToTime, setStyle } from '../utils'; +import { secondToTime, setStyle, query, append } from '../utils'; export default function autoPlayback(art) { const { i18n, + icons, storage, constructor, + events: { proxy }, template: { $poster }, } = art; + const $autoPlayback = art.layers.add({ + name: 'autoPlayback', + html: ` +
+
+
+ `, + }); + + const $last = query('.art-autoPlayback-last', $autoPlayback); + const $jump = query('.art-autoPlayback-jump', $autoPlayback); + const $close = query('.art-autoPlayback-close', $autoPlayback); + art.on('video:timeupdate', () => { const times = storage.get('times') || {}; const keys = Object.keys(times); - if (keys.length > constructor.AUTO_PLAYBACK_MAX) delete times[keys[0]]; + if (keys.length > constructor.AUTO_PLAYBACK_MAX) { + delete times[keys[0]]; + } times[art.option.url] = art.currentTime; storage.set('times', times); }); @@ -20,9 +37,26 @@ export default function autoPlayback(art) { const times = storage.get('times') || {}; const currentTime = times[art.option.url]; if (currentTime) { - art.seek = currentTime; - setStyle($poster, 'display', 'none'); - art.notice.show = `${i18n.get('Auto playback at')} ${secondToTime(currentTime)}`; + append($close, icons.close); + setStyle($autoPlayback, 'display', 'flex'); + + $last.innerText = `${i18n.get('Last Seen')} ${secondToTime(currentTime)}`; + $jump.innerText = i18n.get('Jump Play'); + + proxy($close, 'click', () => { + setStyle($autoPlayback, 'display', 'none'); + }); + + proxy($jump, 'click', () => { + art.seek = currentTime; + art.play(); + setStyle($poster, 'display', 'none'); + setStyle($autoPlayback, 'display', 'none'); + }); + + art.on('video:timeupdate', () => { + setStyle($autoPlayback, 'display', 'none'); + }); } }); diff --git a/packages/artplayer/src/style/plugins.less b/packages/artplayer/src/style/plugins.less index df6240e45..02818d338 100644 --- a/packages/artplayer/src/style/plugins.less +++ b/packages/artplayer/src/style/plugins.less @@ -23,6 +23,41 @@ background-color: rgba(0, 0, 0, 0.5); } + .art-layer-autoPlayback { + display: none; + align-items: center; + position: absolute; + left: 20px; + bottom: 60px; + border-radius: 3px; + padding: 10px; + font-size: 13px; + line-height: 1; + background-color: rgb(0 0 0 / 80%); + + .art-autoPlayback-close { + display: flex; + align-items: center; + margin-right: 10px; + cursor: pointer; + + svg { + width: 15px; + height: 15px; + fill: #00c9ff; + } + } + + .art-autoPlayback-last { + margin-right: 10px; + } + + .art-autoPlayback-jump { + color: #00c9ff; + cursor: pointer; + } + } + &.art-lock { .art-bottom { display: none !important;