diff --git a/docs/uncompiled/artplayer/index.js b/docs/uncompiled/artplayer/index.js index 53469ddeb..22ba2d261 100644 --- a/docs/uncompiled/artplayer/index.js +++ b/docs/uncompiled/artplayer/index.js @@ -254,7 +254,7 @@ class Artplayer extends (0, _emitterDefault.default) { return instances; } static get version() { - return '"5.2.3"'; + return '"5.2.4"'; } static get env() { return '"development"'; @@ -427,7 +427,7 @@ if (_utils.isBrowser) { } },{"bundle-text:./style/index.less":"bFGMG","option-validator":"9hUEm","./utils/emitter":"2qvfs","./utils":"gGxPm","./scheme":"8YPbR","./config":"1dlGA","./template":"5JwMQ","./i18n":"3Jf1s","./player":"iA4EC","./control":"cNVpy","./contextmenu":"dx7Zz","./info":"gvEup","./subtitle":"hxr0l","./events":"dQzlM","./hotkey":"drylQ","./layer":"7Oas9","./loading":"glZdQ","./notice":"jZEIz","./mask":"iGxU6","./icons":"avFu3","./setting":"7ATN8","./storage":"grHII","./plugins":"6P64r","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"bFGMG":[function(require,module,exports,__globalThis) { -module.exports = ".art-video-player {\n --art-theme: red;\n --art-font-color: #fff;\n --art-background-color: #000;\n --art-text-shadow-color: #00000080;\n --art-transition-duration: .2s;\n --art-padding: 10px;\n --art-border-radius: 3px;\n --art-progress-height: 6px;\n --art-progress-color: #ffffff40;\n --art-hover-color: #ffffff40;\n --art-loaded-color: #ffffff40;\n --art-state-size: 80px;\n --art-state-opacity: .8;\n --art-bottom-height: 100px;\n --art-bottom-offset: 20px;\n --art-bottom-gap: 5px;\n --art-highlight-width: 8px;\n --art-highlight-color: #ffffff80;\n --art-control-height: 46px;\n --art-control-opacity: .75;\n --art-control-icon-size: 36px;\n --art-control-icon-scale: 1.1;\n --art-volume-height: 120px;\n --art-volume-handle-size: 14px;\n --art-lock-size: 36px;\n --art-indicator-scale: 0;\n --art-indicator-size: 16px;\n --art-fullscreen-web-index: 9999;\n --art-settings-icon-size: 24px;\n --art-settings-max-height: 300px;\n --art-selector-max-height: 300px;\n --art-contextmenus-min-width: 250px;\n --art-subtitle-font-size: 20px;\n --art-subtitle-gap: 5px;\n --art-subtitle-bottom: 15px;\n --art-subtitle-border: #000;\n --art-widget-background: #000000d9;\n --art-tip-background: #000000b3;\n --art-scrollbar-size: 4px;\n --art-scrollbar-background: #ffffff40;\n --art-scrollbar-background-hover: #ffffff80;\n --art-mini-progress-height: 2px;\n}\n\n.art-bg-cover {\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.art-bottom-gradient {\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n}\n\n.art-backdrop-filter {\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.art-video-player {\n zoom: 1;\n text-align: left;\n user-select: none;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n color: var(--art-font-color);\n background-color: var(--art-background-color);\n text-shadow: 0 0 2px var(--art-text-shadow-color);\n -webkit-tap-highlight-color: #0000;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n -ms-high-contrast-adjust: none;\n direction: ltr;\n outline: 0;\n margin: 0 auto;\n padding: 0;\n font-family: PingFang SC, Helvetica Neue, Microsoft YaHei, Roboto, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.3;\n position: relative;\n}\n\n.art-video-player *, .art-video-player :before, .art-video-player :after {\n box-sizing: border-box;\n}\n\n.art-video-player ::-webkit-scrollbar {\n width: var(--art-scrollbar-size);\n height: var(--art-scrollbar-size);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb {\n background-color: var(--art-scrollbar-background);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb:hover {\n background-color: var(--art-scrollbar-background-hover);\n}\n\n.art-video-player img {\n vertical-align: top;\n max-width: 100%;\n}\n\n.art-video-player svg {\n fill: var(--art-font-color);\n}\n\n.art-video-player a {\n color: var(--art-font-color);\n text-decoration: none;\n}\n\n.art-icon {\n justify-content: center;\n align-items: center;\n line-height: 1;\n display: flex;\n}\n\n.art-video-player.art-backdrop .art-contextmenus, .art-video-player.art-backdrop .art-info, .art-video-player.art-backdrop .art-settings, .art-video-player.art-backdrop .art-layer-auto-playback, .art-video-player.art-backdrop .art-selector-list, .art-video-player.art-backdrop .art-volume-inner {\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-video {\n z-index: 10;\n cursor: pointer;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-poster {\n z-index: 11;\n pointer-events: none;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-subtitle {\n z-index: 20;\n text-align: center;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n gap: var(--art-subtitle-gap);\n width: 100%;\n bottom: var(--art-subtitle-bottom);\n font-size: var(--art-subtitle-font-size);\n transition: bottom var(--art-transition-duration) ease;\n text-shadow: var(--art-subtitle-border) 1px 0 1px, var(--art-subtitle-border) 0 1px 1px, var(--art-subtitle-border) -1px 0 1px, var(--art-subtitle-border) 0 -1px 1px, var(--art-subtitle-border) 1px 1px 1px, var(--art-subtitle-border) -1px -1px 1px, var(--art-subtitle-border) 1px -1px 1px, var(--art-subtitle-border) -1px 1px 1px;\n flex-direction: column;\n padding: 0 5%;\n display: none;\n position: absolute;\n}\n\n.art-video-player.art-subtitle-show .art-subtitle {\n display: flex;\n}\n\n.art-video-player.art-control-show .art-subtitle {\n bottom: calc(var(--art-control-height) + var(--art-subtitle-bottom));\n}\n\n.art-danmuku {\n z-index: 30;\n pointer-events: none;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers {\n z-index: 40;\n pointer-events: none;\n width: 100%;\n height: 100%;\n display: none;\n position: absolute;\n inset: 0;\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: flex;\n}\n\n.art-video-player .art-mask {\n z-index: 50;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-mask .art-state {\n opacity: 0;\n width: var(--art-state-size);\n height: var(--art-state-size);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n display: flex;\n transform: scale(2);\n}\n\n.art-video-player.art-mask-show .art-state {\n cursor: pointer;\n pointer-events: auto;\n opacity: var(--art-state-opacity);\n transform: scale(1);\n}\n\n.art-video-player.art-loading-show .art-state {\n display: none;\n}\n\n.art-video-player .art-loading {\n z-index: 70;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\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 opacity: 0;\n pointer-events: none;\n width: 100%;\n height: 100%;\n padding: 0 var(--art-padding);\n transition: all var(--art-transition-duration) ease;\n background-size: 100% var(--art-bottom-height);\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: flex-end;\n display: flex;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-bottom .art-controls, .art-video-player .art-bottom .art-progress {\n transform: translateY(var(--art-bottom-offset));\n transition: transform var(--art-transition-duration) ease;\n}\n\n.art-video-player.art-control-show .art-bottom, .art-video-player.art-hover .art-bottom {\n opacity: 1;\n}\n\n.art-video-player.art-control-show .art-bottom .art-controls, .art-video-player.art-hover .art-bottom .art-controls, .art-video-player.art-control-show .art-bottom .art-progress, .art-video-player.art-hover .art-bottom .art-progress {\n transform: translateY(0);\n}\n\n.art-bottom .art-progress {\n z-index: 0;\n pointer-events: auto;\n padding-bottom: var(--art-bottom-gap);\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress {\n cursor: pointer;\n height: var(--art-progress-height);\n justify-content: center;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner {\n width: 100%;\n height: 50%;\n transition: height var(--art-transition-duration) ease;\n background-color: var(--art-progress-color);\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover {\n z-index: 0;\n background-color: var(--art-hover-color);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded {\n z-index: 10;\n background-color: var(--art-loaded-color);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played {\n z-index: 20;\n background-color: var(--art-theme);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight {\n z-index: 30;\n pointer-events: none;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span {\n z-index: 0;\n pointer-events: auto;\n width: 100%;\n height: 100%;\n transform: translateX(calc(var(--art-highlight-width) / -2));\n background-color: var(--art-highlight-color);\n position: absolute;\n inset: 0 auto 0 0;\n width: var(--art-highlight-width) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n z-index: 40;\n width: var(--art-indicator-size);\n height: var(--art-indicator-size);\n transform: scale(var(--art-indicator-scale));\n margin-left: calc(var(--art-indicator-size) / -2);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon {\n pointer-events: none;\n width: 100%;\n height: 100%;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover {\n transform: scale(1.2) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active {\n transform: scale(1) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip {\n z-index: 50;\n border-radius: var(--art-border-radius);\n white-space: nowrap;\n background-color: var(--art-tip-background);\n padding: 3px 5px;\n font-size: 12px;\n line-height: 1;\n display: none;\n position: absolute;\n top: -25px;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner {\n height: 100%;\n}\n\n.art-bottom .art-progress .art-control-thumbnails {\n bottom: calc(var(--art-bottom-gap) + 10px);\n border-radius: var(--art-border-radius);\n pointer-events: none;\n background-color: var(--art-widget-background);\n display: none;\n position: absolute;\n left: 0;\n box-shadow: 0 1px 3px #0003, 0 1px 2px -1px #0003;\n}\n\n.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n transform: scale(1);\n}\n\n.art-controls {\n z-index: 10;\n pointer-events: auto;\n height: var(--art-control-height);\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-controls .art-controls-left, .art-controls .art-controls-right {\n height: 100%;\n display: flex;\n}\n\n.art-controls .art-controls-center {\n flex: 1;\n justify-content: center;\n align-items: center;\n height: 100%;\n padding: 0 10px;\n display: none;\n}\n\n.art-controls .art-controls-right {\n justify-content: flex-end;\n}\n\n.art-controls .art-control {\n cursor: pointer;\n white-space: nowrap;\n opacity: var(--art-control-opacity);\n min-height: var(--art-control-height);\n min-width: var(--art-control-height);\n transition: opacity var(--art-transition-duration) ease;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-controls .art-control .art-icon {\n height: var(--art-control-icon-size);\n width: var(--art-control-icon-size);\n transform: scale(var(--art-control-icon-scale));\n transition: transform var(--art-transition-duration) ease;\n}\n\n.art-controls .art-control .art-icon:active {\n transform: scale(calc(var(--art-control-icon-scale) * .8));\n}\n\n.art-controls .art-control:hover {\n opacity: 1;\n}\n\n.art-control-volume {\n position: relative;\n}\n\n.art-control-volume .art-volume-panel {\n text-align: center;\n cursor: default;\n opacity: 0;\n pointer-events: none;\n left: 0;\n right: 0;\n bottom: var(--art-control-height);\n width: var(--art-control-height);\n height: var(--art-volume-height);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n padding: 0 5px;\n font-size: 12px;\n display: flex;\n position: absolute;\n transform: translateY(10px);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner {\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n flex-direction: column;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 100%;\n padding: 10px 0 12px;\n display: flex;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider {\n cursor: pointer;\n flex: 1;\n justify-content: center;\n width: 100%;\n display: flex;\n position: relative;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle {\n border-radius: var(--art-border-radius);\n background-color: #ffffff40;\n justify-content: center;\n width: 2px;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded {\n z-index: 0;\n background-color: var(--art-theme);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator {\n width: var(--art-volume-handle-size);\n height: var(--art-volume-handle-size);\n margin-top: calc(var(--art-volume-handle-size) / -2);\n background-color: var(--art-theme);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 100%;\n flex-shrink: 0;\n position: absolute;\n transform: scale(1);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator {\n transform: scale(.9);\n}\n\n.art-control-volume:hover .art-volume-panel {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.art-video-player .art-notice {\n z-index: 80;\n width: 100%;\n height: auto;\n padding: var(--art-padding);\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0 0 auto;\n}\n\n.art-video-player .art-notice .art-notice-inner {\n border-radius: var(--art-border-radius);\n background-color: var(--art-tip-background);\n padding: 5px;\n line-height: 1;\n display: inline-flex;\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 border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n min-width: var(--art-contextmenus-min-width);\n flex-direction: column;\n padding: 5px 0;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu {\n cursor: pointer;\n border-bottom: 1px solid #ffffff1a;\n padding: 10px 15px;\n display: flex;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span {\n padding: 0 8px;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span:hover, .art-video-player .art-contextmenus .art-contextmenu span.art-current {\n color: var(--art-theme);\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 border-radius: var(--art-border-radius);\n max-height: var(--art-settings-max-height);\n left: auto;\n right: var(--art-padding);\n bottom: var(--art-control-height);\n transition: all var(--art-transition-duration) ease;\n background-color: var(--art-widget-background);\n flex-direction: column;\n display: none;\n position: absolute;\n overflow: hidden auto;\n}\n\n.art-video-player .art-settings .art-setting-panel {\n flex-direction: column;\n display: none;\n}\n\n.art-video-player .art-settings .art-setting-panel.art-current {\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item {\n cursor: pointer;\n transition: background-color var(--art-transition-duration) ease;\n justify-content: space-between;\n align-items: center;\n padding: 0 5px;\n display: flex;\n overflow: hidden;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current {\n color: var(--art-theme);\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 flex-shrink: 0;\n justify-content: center;\n align-items: center;\n gap: 5px;\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: var(--art-settings-icon-size);\n width: var(--art-settings-icon-size);\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 {\n justify-content: center;\n align-items: center;\n gap: 5px;\n font-size: 12px;\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}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon {\n justify-content: center;\n align-items: center;\n min-width: 32px;\n height: 24px;\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 appearance: none;\n background-color: #fff3;\n outline: none;\n width: 80px;\n height: 3px;\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: flex;\n}\n\n.art-video-player .art-info {\n left: var(--art-padding);\n top: var(--art-padding);\n z-index: 100;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n padding: 10px;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-info .art-info-panel {\n flex-direction: column;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item {\n align-items: center;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-title {\n text-align: right;\n width: 100px;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-content {\n text-overflow: ellipsis;\n white-space: nowrap;\n user-select: all;\n width: 250px;\n overflow: hidden;\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-hide-cursor * {\n cursor: none !important;\n}\n\n.art-video-player[data-aspect-ratio] {\n overflow: hidden;\n}\n\n.art-video-player[data-aspect-ratio] .art-video {\n object-fit: fill;\n box-sizing: content-box;\n}\n\n.art-fullscreen {\n --art-progress-height: 8px;\n --art-indicator-size: 20px;\n --art-control-height: 60px;\n --art-control-icon-scale: 1.3;\n}\n\n.art-fullscreen-web {\n --art-progress-height: 8px;\n --art-indicator-size: 20px;\n --art-control-height: 60px;\n --art-control-icon-scale: 1.3;\n z-index: var(--art-fullscreen-web-index);\n width: 100%;\n height: 100%;\n position: fixed;\n inset: 0;\n}\n\n.art-mini-popup {\n z-index: 9999;\n border-radius: var(--art-border-radius);\n cursor: move;\n user-select: none;\n background: #000;\n width: 320px;\n height: 180px;\n transition: opacity .2s;\n position: fixed;\n overflow: hidden;\n box-shadow: 0 0 5px #00000080;\n}\n\n.art-mini-popup svg {\n fill: #fff;\n}\n\n.art-mini-popup .art-video {\n pointer-events: none;\n}\n\n.art-mini-popup .art-mini-close {\n z-index: 20;\n cursor: pointer;\n opacity: 0;\n transition: opacity .2s;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.art-mini-popup .art-mini-state {\n z-index: 30;\n pointer-events: none;\n opacity: 0;\n background-color: #00000040;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n transition: opacity .2s;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-mini-popup .art-mini-state .art-icon {\n opacity: .75;\n cursor: pointer;\n pointer-events: auto;\n transition: transform .2s;\n transform: scale(3);\n}\n\n.art-mini-popup .art-mini-state .art-icon:active {\n transform: scale(2.5);\n}\n\n.art-mini-popup.art-mini-droging {\n opacity: .9;\n}\n\n.art-mini-popup:hover .art-mini-close, .art-mini-popup:hover .art-mini-state {\n opacity: 1;\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-lock {\n height: var(--art-lock-size);\n width: var(--art-lock-size);\n top: 50%;\n left: var(--art-padding);\n background-color: var(--art-tip-background);\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n transform: translateY(-50%);\n}\n\n.art-video-player .art-layer-auto-playback {\n border-radius: var(--art-border-radius);\n left: var(--art-padding);\n bottom: calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);\n background-color: var(--art-widget-background);\n align-items: center;\n gap: 10px;\n padding: 10px;\n line-height: 1;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close {\n cursor: pointer;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close svg {\n width: 15px;\n height: 15px;\n fill: var(--art-theme);\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-jump {\n color: var(--art-theme);\n cursor: pointer;\n}\n\n.art-video-player.art-lock .art-subtitle {\n bottom: var(--art-subtitle-bottom) !important;\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom, .art-video-player.art-lock .art-bottom {\n opacity: 1;\n background-image: none;\n padding: 0;\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom .art-controls, .art-video-player.art-lock .art-bottom .art-controls, .art-video-player.art-mini-progress-bar .art-bottom .art-progress, .art-video-player.art-lock .art-bottom .art-progress {\n transform: translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height) / 4));\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator, .art-video-player.art-lock .art-bottom .art-progress-indicator {\n display: none !important;\n}\n\n.art-video-player.art-control-show .art-layer-lock {\n display: flex;\n}\n\n.art-control-selector {\n justify-content: center;\n display: flex;\n position: relative;\n}\n\n.art-control-selector .art-selector-list {\n text-align: center;\n border-radius: var(--art-border-radius);\n opacity: 0;\n pointer-events: none;\n bottom: var(--art-control-height);\n max-height: var(--art-selector-max-height);\n background-color: var(--art-widget-background);\n transition: all var(--art-transition-duration) ease;\n flex-direction: column;\n align-items: center;\n display: flex;\n position: absolute;\n overflow: hidden auto;\n transform: translateY(10px);\n}\n\n.art-control-selector .art-selector-list .art-selector-item {\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n width: 100%;\n padding: 10px 15px;\n line-height: 1;\n display: flex;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover, .art-control-selector .art-selector-list .art-selector-item.art-current {\n color: var(--art-theme);\n}\n\n.art-control-selector:hover .art-selector-list {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\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 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.art-video-player.art-mobile {\n --art-bottom-gap: 10px;\n --art-control-height: 38px;\n --art-control-icon-scale: 1;\n --art-state-size: 60px;\n --art-settings-max-height: 180px;\n --art-selector-max-height: 180px;\n --art-indicator-scale: 1;\n --art-control-opacity: 1;\n}\n\n.art-video-player.art-mobile .art-controls-left {\n margin-left: calc(var(--art-padding) / -1);\n}\n\n.art-video-player.art-mobile .art-controls-right {\n margin-right: calc(var(--art-padding) / -1);\n}\n"; +module.exports = ".art-video-player {\n --art-theme: red;\n --art-font-color: #fff;\n --art-background-color: #000;\n --art-text-shadow-color: #00000080;\n --art-transition-duration: .2s;\n --art-padding: 10px;\n --art-border-radius: 3px;\n --art-progress-height: 6px;\n --art-progress-color: #ffffff40;\n --art-hover-color: #ffffff40;\n --art-loaded-color: #ffffff40;\n --art-state-size: 80px;\n --art-state-opacity: .8;\n --art-bottom-height: 100px;\n --art-bottom-offset: 20px;\n --art-bottom-gap: 5px;\n --art-highlight-width: 8px;\n --art-highlight-color: #ffffff80;\n --art-control-height: 46px;\n --art-control-opacity: .75;\n --art-control-icon-size: 36px;\n --art-control-icon-scale: 1.1;\n --art-volume-height: 120px;\n --art-volume-handle-size: 14px;\n --art-lock-size: 36px;\n --art-indicator-scale: 0;\n --art-indicator-size: 16px;\n --art-fullscreen-web-index: 9999;\n --art-settings-icon-size: 24px;\n --art-settings-max-height: 300px;\n --art-selector-max-height: 300px;\n --art-contextmenus-min-width: 250px;\n --art-subtitle-font-size: 20px;\n --art-subtitle-gap: 5px;\n --art-subtitle-bottom: 15px;\n --art-subtitle-border: #000;\n --art-widget-background: #000000d9;\n --art-tip-background: #000000b3;\n --art-scrollbar-size: 4px;\n --art-scrollbar-background: #ffffff40;\n --art-scrollbar-background-hover: #ffffff80;\n --art-mini-progress-height: 2px;\n}\n\n.art-bg-cover {\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n.art-bottom-gradient {\n background-image: linear-gradient(to top, #000, #0006, #0000);\n background-position: bottom;\n background-repeat: repeat-x;\n}\n\n.art-backdrop-filter {\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.art-video-player {\n zoom: 1;\n text-align: left;\n user-select: none;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n color: var(--art-font-color);\n background-color: var(--art-background-color);\n text-shadow: 0 0 2px var(--art-text-shadow-color);\n -webkit-tap-highlight-color: #0000;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n -ms-high-contrast-adjust: none;\n direction: ltr;\n outline: 0;\n margin: 0 auto;\n padding: 0;\n font-family: PingFang SC, Helvetica Neue, Microsoft YaHei, Roboto, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.3;\n position: relative;\n}\n\n.art-video-player *, .art-video-player :before, .art-video-player :after {\n box-sizing: border-box;\n}\n\n.art-video-player ::-webkit-scrollbar {\n width: var(--art-scrollbar-size);\n height: var(--art-scrollbar-size);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb {\n background-color: var(--art-scrollbar-background);\n}\n\n.art-video-player ::-webkit-scrollbar-thumb:hover {\n background-color: var(--art-scrollbar-background-hover);\n}\n\n.art-video-player img {\n vertical-align: top;\n max-width: 100%;\n}\n\n.art-video-player svg {\n fill: var(--art-font-color);\n}\n\n.art-video-player a {\n color: var(--art-font-color);\n text-decoration: none;\n}\n\n.art-icon {\n justify-content: center;\n align-items: center;\n line-height: 1;\n display: flex;\n}\n\n.art-video-player.art-backdrop .art-contextmenus, .art-video-player.art-backdrop .art-info, .art-video-player.art-backdrop .art-settings, .art-video-player.art-backdrop .art-layer-auto-playback, .art-video-player.art-backdrop .art-selector-list, .art-video-player.art-backdrop .art-volume-inner {\n backdrop-filter: saturate(180%) blur(20px);\n background-color: #000000bf !important;\n}\n\n.art-video {\n z-index: 10;\n cursor: pointer;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-poster {\n z-index: 11;\n pointer-events: none;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-subtitle {\n z-index: 20;\n text-align: center;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n gap: var(--art-subtitle-gap);\n width: 100%;\n bottom: var(--art-subtitle-bottom);\n font-size: var(--art-subtitle-font-size);\n transition: bottom var(--art-transition-duration) ease;\n text-shadow: var(--art-subtitle-border) 1px 0 1px, var(--art-subtitle-border) 0 1px 1px, var(--art-subtitle-border) -1px 0 1px, var(--art-subtitle-border) 0 -1px 1px, var(--art-subtitle-border) 1px 1px 1px, var(--art-subtitle-border) -1px -1px 1px, var(--art-subtitle-border) 1px -1px 1px, var(--art-subtitle-border) -1px 1px 1px;\n flex-direction: column;\n padding: 0 5%;\n display: none;\n position: absolute;\n}\n\n.art-video-player.art-subtitle-show .art-subtitle {\n display: flex;\n}\n\n.art-video-player.art-control-show .art-subtitle {\n bottom: calc(var(--art-control-height) + var(--art-subtitle-bottom));\n}\n\n.art-danmuku {\n z-index: 30;\n pointer-events: none;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-layers {\n z-index: 40;\n pointer-events: none;\n width: 100%;\n height: 100%;\n display: none;\n position: absolute;\n inset: 0;\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: flex;\n}\n\n.art-video-player .art-mask {\n z-index: 50;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-video-player .art-mask .art-state {\n opacity: 0;\n width: var(--art-state-size);\n height: var(--art-state-size);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n display: flex;\n transform: scale(2);\n}\n\n.art-video-player.art-mask-show .art-state {\n cursor: pointer;\n pointer-events: auto;\n opacity: var(--art-state-opacity);\n transform: scale(1);\n}\n\n.art-video-player.art-loading-show .art-state {\n display: none;\n}\n\n.art-video-player .art-loading {\n z-index: 70;\n pointer-events: none;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\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 opacity: 0;\n pointer-events: none;\n width: 100%;\n height: 100%;\n padding: 0 var(--art-padding);\n transition: all var(--art-transition-duration) ease;\n background-size: 100% var(--art-bottom-height);\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: flex-end;\n display: flex;\n position: absolute;\n inset: 0;\n overflow: hidden;\n}\n\n.art-video-player .art-bottom .art-controls, .art-video-player .art-bottom .art-progress {\n transform: translateY(var(--art-bottom-offset));\n transition: transform var(--art-transition-duration) ease;\n}\n\n.art-video-player.art-control-show .art-bottom, .art-video-player.art-hover .art-bottom {\n opacity: 1;\n}\n\n.art-video-player.art-control-show .art-bottom .art-controls, .art-video-player.art-hover .art-bottom .art-controls, .art-video-player.art-control-show .art-bottom .art-progress, .art-video-player.art-hover .art-bottom .art-progress {\n transform: translateY(0);\n}\n\n.art-bottom .art-progress {\n z-index: 0;\n pointer-events: auto;\n padding-bottom: var(--art-bottom-gap);\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress {\n cursor: pointer;\n height: var(--art-progress-height);\n justify-content: center;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner {\n width: 100%;\n height: 50%;\n transition: height var(--art-transition-duration) ease;\n background-color: var(--art-progress-color);\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover {\n z-index: 0;\n background-color: var(--art-hover-color);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded {\n z-index: 10;\n background-color: var(--art-loaded-color);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played {\n z-index: 20;\n background-color: var(--art-theme);\n width: 0%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight {\n z-index: 30;\n pointer-events: none;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span {\n z-index: 0;\n pointer-events: auto;\n width: 100%;\n height: 100%;\n transform: translateX(calc(var(--art-highlight-width) / -2));\n background-color: var(--art-highlight-color);\n position: absolute;\n inset: 0 auto 0 0;\n width: var(--art-highlight-width) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n z-index: 40;\n width: var(--art-indicator-size);\n height: var(--art-indicator-size);\n transform: scale(var(--art-indicator-scale));\n margin-left: calc(var(--art-indicator-size) / -2);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon {\n pointer-events: none;\n width: 100%;\n height: 100%;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover {\n transform: scale(1.2) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active {\n transform: scale(1) !important;\n}\n\n.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip {\n z-index: 50;\n border-radius: var(--art-border-radius);\n white-space: nowrap;\n background-color: var(--art-tip-background);\n padding: 3px 5px;\n font-size: 12px;\n line-height: 1;\n display: none;\n position: absolute;\n top: -25px;\n left: 0;\n}\n\n.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner {\n height: 100%;\n}\n\n.art-bottom .art-progress .art-control-thumbnails {\n bottom: calc(var(--art-bottom-gap) + 10px);\n border-radius: var(--art-border-radius);\n pointer-events: none;\n background-color: var(--art-widget-background);\n display: none;\n position: absolute;\n left: 0;\n box-shadow: 0 1px 3px #0003, 0 1px 2px -1px #0003;\n}\n\n.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n transform: scale(1);\n}\n\n.art-controls {\n z-index: 10;\n pointer-events: auto;\n height: var(--art-control-height);\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.art-controls .art-controls-left, .art-controls .art-controls-right {\n height: 100%;\n display: flex;\n}\n\n.art-controls .art-controls-center {\n flex: 1;\n justify-content: center;\n align-items: center;\n height: 100%;\n padding: 0 10px;\n display: none;\n}\n\n.art-controls .art-controls-right {\n justify-content: flex-end;\n}\n\n.art-controls .art-control {\n cursor: pointer;\n white-space: nowrap;\n opacity: var(--art-control-opacity);\n min-height: var(--art-control-height);\n min-width: var(--art-control-height);\n transition: opacity var(--art-transition-duration) ease;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-controls .art-control .art-icon {\n height: var(--art-control-icon-size);\n width: var(--art-control-icon-size);\n transform: scale(var(--art-control-icon-scale));\n transition: transform var(--art-transition-duration) ease;\n}\n\n.art-controls .art-control .art-icon:active {\n transform: scale(calc(var(--art-control-icon-scale) * .8));\n}\n\n.art-controls .art-control:hover {\n opacity: 1;\n}\n\n.art-control-volume {\n position: relative;\n}\n\n.art-control-volume .art-volume-panel {\n text-align: center;\n cursor: default;\n opacity: 0;\n pointer-events: none;\n left: 0;\n right: 0;\n bottom: var(--art-control-height);\n width: var(--art-control-height);\n height: var(--art-volume-height);\n transition: all var(--art-transition-duration) ease;\n justify-content: center;\n align-items: center;\n padding: 0 5px;\n font-size: 12px;\n display: flex;\n position: absolute;\n transform: translateY(10px);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner {\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n flex-direction: column;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 100%;\n padding: 10px 0 12px;\n display: flex;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider {\n cursor: pointer;\n flex: 1;\n justify-content: center;\n width: 100%;\n display: flex;\n position: relative;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle {\n border-radius: var(--art-border-radius);\n background-color: #ffffff40;\n justify-content: center;\n width: 2px;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded {\n z-index: 0;\n background-color: var(--art-theme);\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator {\n width: var(--art-volume-handle-size);\n height: var(--art-volume-handle-size);\n margin-top: calc(var(--art-volume-handle-size) / -2);\n background-color: var(--art-theme);\n transition: transform var(--art-transition-duration) ease;\n border-radius: 100%;\n flex-shrink: 0;\n position: absolute;\n transform: scale(1);\n}\n\n.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator {\n transform: scale(.9);\n}\n\n.art-control-volume:hover .art-volume-panel {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.art-video-player .art-notice {\n z-index: 80;\n width: 100%;\n height: auto;\n padding: var(--art-padding);\n pointer-events: none;\n display: none;\n position: absolute;\n inset: 0 0 auto;\n}\n\n.art-video-player .art-notice .art-notice-inner {\n border-radius: var(--art-border-radius);\n background-color: var(--art-tip-background);\n padding: 5px;\n line-height: 1;\n display: inline-flex;\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 border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n min-width: var(--art-contextmenus-min-width);\n flex-direction: column;\n padding: 5px 0;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu {\n cursor: pointer;\n border-bottom: 1px solid #ffffff1a;\n padding: 10px 15px;\n display: flex;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span {\n padding: 0 8px;\n}\n\n.art-video-player .art-contextmenus .art-contextmenu span:hover, .art-video-player .art-contextmenus .art-contextmenu span.art-current {\n color: var(--art-theme);\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 border-radius: var(--art-border-radius);\n max-height: var(--art-settings-max-height);\n left: auto;\n right: var(--art-padding);\n bottom: var(--art-control-height);\n transition: all var(--art-transition-duration) ease;\n background-color: var(--art-widget-background);\n flex-direction: column;\n display: none;\n position: absolute;\n overflow: hidden auto;\n}\n\n.art-video-player .art-settings .art-setting-panel {\n flex-direction: column;\n display: none;\n}\n\n.art-video-player .art-settings .art-setting-panel.art-current {\n display: flex;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item {\n cursor: pointer;\n transition: background-color var(--art-transition-duration) ease;\n justify-content: space-between;\n align-items: center;\n padding: 0 5px;\n display: flex;\n overflow: hidden;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current {\n color: var(--art-theme);\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 flex-shrink: 0;\n justify-content: center;\n align-items: center;\n gap: 5px;\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: var(--art-settings-icon-size);\n width: var(--art-settings-icon-size);\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 {\n justify-content: center;\n align-items: center;\n gap: 5px;\n font-size: 12px;\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}\n\n.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon {\n justify-content: center;\n align-items: center;\n min-width: 32px;\n height: 24px;\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 appearance: none;\n background-color: #fff3;\n outline: none;\n width: 80px;\n height: 3px;\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: flex;\n}\n\n.art-video-player .art-info {\n left: var(--art-padding);\n top: var(--art-padding);\n z-index: 100;\n border-radius: var(--art-border-radius);\n background-color: var(--art-widget-background);\n padding: 10px;\n font-size: 12px;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-info .art-info-panel {\n flex-direction: column;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item {\n align-items: center;\n gap: 5px;\n display: flex;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-title {\n text-align: right;\n width: 100px;\n}\n\n.art-video-player .art-info .art-info-panel .art-info-item .art-info-content {\n text-overflow: ellipsis;\n white-space: nowrap;\n user-select: all;\n width: 250px;\n overflow: hidden;\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-hide-cursor * {\n cursor: none !important;\n}\n\n.art-video-player[data-aspect-ratio] {\n overflow: hidden;\n}\n\n.art-video-player[data-aspect-ratio] .art-video {\n object-fit: fill;\n box-sizing: content-box;\n}\n\n.art-fullscreen {\n --art-progress-height: 8px;\n --art-indicator-size: 20px;\n --art-control-height: 60px;\n --art-control-icon-scale: 1.3;\n}\n\n.art-fullscreen-web {\n --art-progress-height: 8px;\n --art-indicator-size: 20px;\n --art-control-height: 60px;\n --art-control-icon-scale: 1.3;\n z-index: var(--art-fullscreen-web-index);\n width: 100%;\n height: 100%;\n position: fixed;\n inset: 0;\n}\n\n.art-mini-popup {\n z-index: 9999;\n border-radius: var(--art-border-radius);\n cursor: move;\n user-select: none;\n background: #000;\n width: 320px;\n height: 180px;\n transition: opacity .2s;\n position: fixed;\n overflow: hidden;\n box-shadow: 0 0 5px #00000080;\n}\n\n.art-mini-popup svg {\n fill: #fff;\n}\n\n.art-mini-popup .art-video {\n pointer-events: none;\n}\n\n.art-mini-popup .art-mini-close {\n z-index: 20;\n cursor: pointer;\n opacity: 0;\n transition: opacity .2s;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.art-mini-popup .art-mini-state {\n z-index: 30;\n pointer-events: none;\n opacity: 0;\n background-color: #00000040;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n transition: opacity .2s;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.art-mini-popup .art-mini-state .art-icon {\n opacity: .75;\n cursor: pointer;\n pointer-events: auto;\n transition: transform .2s;\n transform: scale(3);\n}\n\n.art-mini-popup .art-mini-state .art-icon:active {\n transform: scale(2.5);\n}\n\n.art-mini-popup.art-mini-dragging {\n opacity: .9;\n}\n\n.art-mini-popup:hover .art-mini-close, .art-mini-popup:hover .art-mini-state {\n opacity: 1;\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-lock {\n height: var(--art-lock-size);\n width: var(--art-lock-size);\n top: 50%;\n left: var(--art-padding);\n background-color: var(--art-tip-background);\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n display: none;\n position: absolute;\n transform: translateY(-50%);\n}\n\n.art-video-player .art-layer-auto-playback {\n border-radius: var(--art-border-radius);\n left: var(--art-padding);\n bottom: calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);\n background-color: var(--art-widget-background);\n align-items: center;\n gap: 10px;\n padding: 10px;\n line-height: 1;\n display: none;\n position: absolute;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close {\n cursor: pointer;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-close svg {\n width: 15px;\n height: 15px;\n fill: var(--art-theme);\n}\n\n.art-video-player .art-layer-auto-playback .art-auto-playback-jump {\n color: var(--art-theme);\n cursor: pointer;\n}\n\n.art-video-player.art-lock .art-subtitle {\n bottom: var(--art-subtitle-bottom) !important;\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom, .art-video-player.art-lock .art-bottom {\n opacity: 1;\n background-image: none;\n padding: 0;\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom .art-controls, .art-video-player.art-lock .art-bottom .art-controls, .art-video-player.art-mini-progress-bar .art-bottom .art-progress, .art-video-player.art-lock .art-bottom .art-progress {\n transform: translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height) / 4));\n}\n\n.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator, .art-video-player.art-lock .art-bottom .art-progress-indicator {\n display: none !important;\n}\n\n.art-video-player.art-control-show .art-layer-lock {\n display: flex;\n}\n\n.art-control-selector {\n justify-content: center;\n display: flex;\n position: relative;\n}\n\n.art-control-selector .art-selector-list {\n text-align: center;\n border-radius: var(--art-border-radius);\n opacity: 0;\n pointer-events: none;\n bottom: var(--art-control-height);\n max-height: var(--art-selector-max-height);\n background-color: var(--art-widget-background);\n transition: all var(--art-transition-duration) ease;\n flex-direction: column;\n align-items: center;\n display: flex;\n position: absolute;\n overflow: hidden auto;\n transform: translateY(10px);\n}\n\n.art-control-selector .art-selector-list .art-selector-item {\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n width: 100%;\n padding: 10px 15px;\n line-height: 1;\n display: flex;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover {\n background-color: #ffffff1a;\n}\n\n.art-control-selector .art-selector-list .art-selector-item:hover, .art-control-selector .art-selector-list .art-selector-item.art-current {\n color: var(--art-theme);\n}\n\n.art-control-selector:hover .art-selector-list {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\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 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.art-video-player.art-mobile {\n --art-bottom-gap: 10px;\n --art-control-height: 38px;\n --art-control-icon-scale: 1;\n --art-state-size: 60px;\n --art-settings-max-height: 180px;\n --art-selector-max-height: 180px;\n --art-indicator-scale: 1;\n --art-control-opacity: 1;\n}\n\n.art-video-player.art-mobile .art-controls-left {\n margin-left: calc(var(--art-padding) / -1);\n}\n\n.art-video-player.art-mobile .art-controls-right {\n margin-right: calc(var(--art-padding) / -1);\n}\n"; },{}],"9hUEm":[function(require,module,exports,__globalThis) { !function(r, t) { @@ -675,7 +675,7 @@ 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, "siblings", ()=>siblings); parcelHelpers.export(exports, "inverseClass", ()=>inverseClass); parcelHelpers.export(exports, "tooltip", ()=>tooltip); parcelHelpers.export(exports, "isInViewport", ()=>isInViewport); @@ -723,11 +723,11 @@ function getStyle(element, key, numberType = true) { const value = window.getComputedStyle(element, null).getPropertyValue(key); return numberType ? parseFloat(value) : value; } -function sublings(target) { +function siblings(target) { return Array.from(target.parentElement.children).filter((item)=>item !== target); } function inverseClass(target, className) { - sublings(target).forEach((item)=>removeClass(item, className)); + siblings(target).forEach((item)=>removeClass(item, className)); addClass(target, className); } function tooltip(target, msg, pos = 'top') { @@ -1168,7 +1168,7 @@ exports.default = { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); exports.default = { - propertys: [ + properties: [ 'audioTracks', 'autoplay', 'buffered', @@ -2202,9 +2202,9 @@ function pipMix(art) { },{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"lmx0A":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "default", ()=>seekMix); +parcelHelpers.export(exports, "default", ()=>loadedMix); var _utils = require("../utils"); -function seekMix(art) { +function loadedMix(art) { const { $video } = art.template; (0, _utils.def)(art, 'loaded', { get: ()=>art.loadedTime / $video.duration @@ -2245,9 +2245,9 @@ function playingMix(art) { },{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"cbo97":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "default", ()=>resizeMix); +parcelHelpers.export(exports, "default", ()=>autoSizeMix); var _utils = require("../utils"); -function resizeMix(art) { +function autoSizeMix(art) { const { $container, $player, $video } = art.template; (0, _utils.def)(art, 'autoSize', { value () { @@ -2339,7 +2339,7 @@ parcelHelpers.export(exports, "default", ()=>miniMix); var _utils = require("../utils"); function miniMix(art) { const { icons, proxy, storage, template: { $player, $video } } = art; - let isDroging = false; + let isDragging = false; let lastPageX = 0; let lastPageY = 0; function hideMini() { @@ -2384,22 +2384,22 @@ function miniMix(art) { art.on('video:pause', ()=>initState($play, $pause)); art.on('video:timeupdate', ()=>initState($play, $pause)); proxy($mini, 'mousedown', (event)=>{ - isDroging = event.button === 0; + isDragging = event.button === 0; lastPageX = event.pageX; lastPageY = event.pageY; }); art.on('document:mousemove', (event)=>{ - if (isDroging) { - (0, _utils.addClass)($mini, 'art-mini-droging'); + if (isDragging) { + (0, _utils.addClass)($mini, 'art-mini-dragging'); const x = event.pageX - lastPageX; const y = event.pageY - lastPageY; (0, _utils.setStyle)($mini, 'transform', `translate(${x}px, ${y}px)`); } }); art.on('document:mouseup', ()=>{ - if (isDroging) { - isDroging = false; - (0, _utils.removeClass)($mini, 'art-mini-droging'); + if (isDragging) { + isDragging = false; + (0, _utils.removeClass)($mini, 'art-mini-dragging'); const rect = (0, _utils.getRect)($mini); storage.set('left', rect.left); storage.set('top', rect.top); @@ -2687,8 +2687,8 @@ function thumbnailsMix(art) { const $thumbnails = art.controls?.thumbnails; const { url, scale } = option.thumbnails; if (!$thumbnails || !url) return; - const isMobileDroging = type === 'played' && event && (0, _utils.isMobile); - if (type === 'hover' || isMobileDroging) { + const isMobileDragging = type === 'played' && event && (0, _utils.isMobile); + if (type === 'hover' || isMobileDragging) { if (!loading) { loading = true; image = await (0, _utils.loadImg)(url, scale); @@ -2699,7 +2699,7 @@ function thumbnailsMix(art) { (0, _utils.setStyle)($thumbnails, 'display', 'flex'); if (width > 0 && width < $progress.clientWidth) showThumbnails(width); else if (!(0, _utils.isMobile)) (0, _utils.setStyle)($thumbnails, 'display', 'none'); - if (isMobileDroging) { + if (isMobileDragging) { clearTimeout(timer); timer = setTimeout(()=>{ (0, _utils.setStyle)($thumbnails, 'display', 'none'); @@ -2723,9 +2723,9 @@ function thumbnailsMix(art) { },{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"2TEf9":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "default", ()=>attrInit); +parcelHelpers.export(exports, "default", ()=>optionInit); var _utils = require("../utils"); -function attrInit(art) { +function optionInit(art) { const { option, storage, template: { $video, $poster } } = art; for(const key in option.moreVideoAttr)art.attr(key, option.moreVideoAttr[key]); if (option.muted) art.muted = option.muted; @@ -3313,7 +3313,7 @@ function progress(options) { `, mounted: ($control)=>{ let tipTimer = null; - let isDroging = false; + let isDragging = false; const $hover = (0, _utils.query)('.art-progress-hover', $control); const $loaded = (0, _utils.query)('.art-progress-loaded', $control); const $played = (0, _utils.query)('.art-progress-played', $control); @@ -3349,14 +3349,14 @@ function progress(options) { } } function setBar(type, percentage, event) { - const isMobileDroging = type === 'played' && event && (0, _utils.isMobile); + const isMobileDragging = type === 'played' && event && (0, _utils.isMobile); if (type === 'loaded') (0, _utils.setStyle)($loaded, 'width', `${percentage * 100}%`); if (type === 'hover') (0, _utils.setStyle)($hover, 'width', `${percentage * 100}%`); if (type === 'played') { (0, _utils.setStyle)($played, 'width', `${percentage * 100}%`); (0, _utils.setStyle)($indicator, 'left', `${percentage * 100}%`); } - if (isMobileDroging) { + if (isMobileDragging) { (0, _utils.setStyle)($tip, 'display', 'flex'); const width = $control.clientWidth * percentage; const time = (0, _utils.secondToTime)(percentage * art.duration); @@ -3404,17 +3404,17 @@ function progress(options) { art.emit('setBar', 'hover', 0, event); }); proxy($control, 'mousedown', (event)=>{ - isDroging = event.button === 0; + isDragging = event.button === 0; }); art.on('document:mousemove', (event)=>{ - if (isDroging) { + if (isDragging) { const { second, percentage } = getPosFromEvent(art, event); art.emit('setBar', 'played', percentage, event); art.seek = second; } }); art.on('document:mouseup', ()=>{ - if (isDroging) isDroging = false; + if (isDragging) isDragging = false; }); } } @@ -3502,19 +3502,19 @@ function volume(option) { }); if (0, _utils.isMobile) (0, _utils.setStyle)($panel, 'display', 'none'); else { - let isDroging = false; + let isDragging = false; proxy($slider, 'mousedown', (event)=>{ - isDroging = event.button === 0; + isDragging = event.button === 0; art.volume = getVolumeFromEvent(event); }); art.on('document:mousemove', (event)=>{ - if (isDroging) { + if (isDragging) { art.muted = false; art.volume = getVolumeFromEvent(event); } }); art.on('document:mouseup', ()=>{ - if (isDroging) isDroging = false; + if (isDragging) isDragging = false; }); } } @@ -3566,9 +3566,9 @@ function screenshot(option) { },{"../utils":"gGxPm","@parcel/transformer-js/src/esmodule-helpers.js":"8oCsH"}],"lTlrf":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "default", ()=>pip); +parcelHelpers.export(exports, "default", ()=>airplay); var _utils = require("../utils"); -function pip(option) { +function airplay(option) { return (art)=>({ ...option, tooltip: art.i18n.get('AirPlay'), @@ -4143,14 +4143,14 @@ function gestureInit(art, events) { if ((0, _utils.isMobile) && !art.option.isLive) { const { $video, $progress } = art.template; let touchTarget = null; - let isDroging = false; + let isDragging = false; let startX = 0; let startY = 0; let startTime = 0; const onTouchStart = (event)=>{ if (event.touches.length === 1 && !art.isLock) { if (touchTarget === $progress) (0, _progress.setCurrentTime)(art, event); - isDroging = true; + isDragging = true; const { pageX, pageY } = event.touches[0]; startX = pageX; startY = pageY; @@ -4158,7 +4158,7 @@ function gestureInit(art, events) { } }; const onTouchMove = (event)=>{ - if (event.touches.length === 1 && isDroging && art.duration) { + if (event.touches.length === 1 && isDragging && art.duration) { const { pageX, pageY } = event.touches[0]; const direction = GetSlideDirection(startX, startY, pageX, pageY); const isHorizontal = [ @@ -4183,11 +4183,11 @@ function gestureInit(art, events) { } }; const onTouchEnd = ()=>{ - if (isDroging) { + if (isDragging) { startX = 0; startY = 0; startTime = 0; - isDroging = false; + isDragging = false; touchTarget = null; } }; @@ -4726,7 +4726,7 @@ class Setting extends (0, _componentDefault.default) { this.inactivate(item); Object.assign(item, target); this.format(); - this.creatItem(item, true); + this.createItem(item, true); this.render(); return item; } else return this.add(target); @@ -4734,11 +4734,11 @@ class Setting extends (0, _componentDefault.default) { add(item, option = this.option) { option.push(item); this.format(); - this.creatItem(item); + this.createItem(item); this.render(); return item; } - creatHeader(item) { + createHeader(item) { if (!this.cache.has(item.$option)) return; const $panel = this.cache.get(item.$option); const { proxy, icons: { arrowLeft }, constructor: { SETTING_ITEM_HEIGHT } } = this.art; @@ -4756,7 +4756,7 @@ class Setting extends (0, _componentDefault.default) { item.$parent.$events.push(event); (0, _utils.append)($panel, $item); } - creatItem(item, isUpdate = false) { + createItem(item, isUpdate = false) { if (!this.cache.has(item.$option)) return; const $panel = this.cache.get(item.$option); const oldItem = item.$item; @@ -4982,8 +4982,8 @@ class Setting extends (0, _componentDefault.default) { (0, _utils.addClass)($panel, 'art-setting-panel'); (0, _utils.append)(this.$parent, $panel); (0, _utils.inverseClass)($panel, 'art-current'); - if (option[0]?.$parent) this.creatHeader(option[0]); - for(let index = 0; index < option.length; index++)this.creatItem(option[index]); + if (option[0]?.$parent) this.createHeader(option[0]); + for(let index = 0; index < option.length; index++)this.createItem(option[index]); } this.resize(); } diff --git a/docs/uncompiled/artplayer/index.js.map b/docs/uncompiled/artplayer/index.js.map index b218174cc..bab48d67f 100644 --- a/docs/uncompiled/artplayer/index.js.map +++ b/docs/uncompiled/artplayer/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-1a83ba7b78f9fbad.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/template.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.js","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/posterMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/cssVarMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/typeMix.js","packages/artplayer/src/player/stateMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/airplayMix.js","packages/artplayer/src/player/qualityMix.js","packages/artplayer/src/player/thumbnailsMix.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/screenshot.js","packages/artplayer/src/control/airplay.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/moveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/events/documentInit.js","packages/artplayer/src/events/updateInit.js","packages/artplayer/src/events/restoreInit.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-20be5e3eca70ea32.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c89477eca9760866.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8306aa2d43f8f518.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-9e6243eba3e2ee25.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed2c6405abc18237.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-296845b4b0ef3af0.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ce7336f6ee750446.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e2d98041510dcc81.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-0b69a45deda02972.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-59d8a32ff494cf26.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fc0e8ba14b0a205e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8fd0b0f874dbf51e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b6afaee63da94390.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6e4bd76b89220063.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d269c22a6d246bc3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c577d5b2fce8a593.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-766dea468868d543.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d20ee4405f81c2fb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e61dc575158bf45c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-853939c76577d052.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed21bae52505e995.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3cf7eba38b86f798.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-dbc4095e84eeca13.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b9362d1cb1ddd7.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-11f6581ae841b62a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e79e019b9bea702c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b09787399762439a.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"],"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 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';\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 mergeOption.container = option.container;\n\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.isRotate = false;\n this.isDestroy = false;\n\n this.template = new Template(this);\n this.events = new Events(this);\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\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this, this));\n }\n\n if (Artplayer.DEBUG) {\n const log = (msg) => console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n log('Env@' + Artplayer.env);\n log('Build@' + Artplayer.build);\n for (let index = 0; index < config.events.length; index++) {\n this.on('video:' + config.events[index], (event) => log('Event@' + event.type));\n }\n }\n\n instances.push(this);\n }\n\n static get instances() {\n return instances;\n }\n\n static get version() {\n return '\"5.2.3\"';\n }\n\n static get env() {\n return '\"development\"';\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 id: '',\n container: '#artplayer',\n url: '',\n poster: '',\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 gesture: true,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n airplay: false,\n proxy: undefined,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n width: 0,\n height: 0,\n scale: 1,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n name: '',\n escape: true,\n encoding: 'utf-8',\n onVttLoad: (vtt) => vtt,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n i18n: {},\n icons: {},\n cssVar: {},\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 get video() {\n return this.template.$video;\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.STYLE = style;\nArtplayer.DEBUG = false;\nArtplayer.CONTEXTMENU = true;\nArtplayer.NOTICE_TIME = 2000;\nArtplayer.SETTING_WIDTH = 250;\nArtplayer.SETTING_ITEM_WIDTH = 200;\nArtplayer.SETTING_ITEM_HEIGHT = 35;\nArtplayer.RESIZE_TIME = 200;\nArtplayer.SCROLL_TIME = 200;\nArtplayer.SCROLL_GAP = 50;\nArtplayer.AUTO_PLAYBACK_MAX = 10;\nArtplayer.AUTO_PLAYBACK_MIN = 5;\nArtplayer.AUTO_PLAYBACK_TIMEOUT = 3000;\nArtplayer.RECONNECT_TIME_MAX = 5;\nArtplayer.RECONNECT_SLEEP_TIME = 1000;\nArtplayer.CONTROL_HIDE_TIME = 3000;\nArtplayer.DBCLICK_TIME = 300;\nArtplayer.DBCLICK_FULLSCREEN = true;\nArtplayer.MOBILE_DBCLICK_PLAY = true;\nArtplayer.MOBILE_CLICK_PLAY = false;\nArtplayer.AUTO_ORIENTATION_TIME = 200;\nArtplayer.INFO_LOOP_TIME = 1000;\nArtplayer.FAST_FORWARD_VALUE = 3;\nArtplayer.FAST_FORWARD_TIME = 1000;\nArtplayer.TOUCH_MOVE_RATIO = 0.5;\nArtplayer.VOLUME_STEP = 0.1;\nArtplayer.SEEK_STEP = 5;\nArtplayer.PLAYBACK_RATE = [0.5, 0.75, 1, 1.25, 1.5, 2];\nArtplayer.ASPECT_RATIO = ['default', '4:3', '16:9'];\nArtplayer.FLIP = ['normal', 'horizontal', 'vertical'];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\nArtplayer.LOG_VERSION = true;\nArtplayer.USE_RAF = false;\n\nif (utils.isBrowser) {\n window['Artplayer'] = Artplayer;\n\n utils.setStyleText('artplayer-style', style);\n\n setTimeout(() => {\n if (Artplayer.LOG_VERSION) {\n console.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n );\n }\n }, 100);\n}\n","module.exports = \"8df583d394494873\";","!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 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\nexport function createElement(tag) {\n return document.createElement(tag);\n}\n\nexport function getIcon(key = '', html = '') {\n const icon = createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, html);\n return icon;\n}\n\nexport function setStyleText(id, style) {\n let $style = document.getElementById(id);\n if (!$style) {\n $style = document.createElement('style');\n $style.id = id;\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n document.head.appendChild($style);\n });\n } else {\n (document.head || document.documentElement).appendChild($style);\n }\n }\n $style.textContent = style;\n}\n\nexport function supportsFlex() {\n const div = document.createElement('div');\n div.style.display = 'flex';\n return div.style.display === 'flex';\n}\n\nexport function getRect(el) {\n return el.getBoundingClientRect();\n}\n\nexport function loadImg(url, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n\n img.onload = function () {\n if (!scale || scale === 1) {\n resolve(img);\n } else {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = img.width * scale;\n canvas.height = img.height * scale;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n canvas.toBlob((blob) => {\n const blobUrl = URL.createObjectURL(blob);\n const scaledImg = new Image();\n\n scaledImg.onload = function () {\n resolve(scaledImg);\n };\n\n scaledImg.onerror = function () {\n URL.revokeObjectURL(blobUrl);\n reject(new Error(`Image load failed: ${url}`));\n };\n\n scaledImg.src = blobUrl;\n });\n }\n };\n\n img.onerror = function () {\n reject(new Error(`Image load failed: ${url}`));\n };\n\n img.src = url;\n });\n}\n","export const userAgent = globalThis?.CUSTOM_USER_AGENT ?? (typeof navigator !== 'undefined' ? navigator.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;\nexport const isIOS13 = isIOS || (userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1);\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13;\nexport const isBrowser = typeof window !== 'undefined';\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 return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return (\n 'WEBVTT' +\n '\\n' +\n '\\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}\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)) {\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, duration) {\n let timeout;\n\n return function (...args) {\n const effect = () => {\n timeout = null;\n return func.apply(this, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(effect, duration);\n };\n}\n\nexport function throttle(func, duration) {\n let shouldWait = false;\n\n return function (...args) {\n if (!shouldWait) {\n func.apply(this, args);\n shouldWait = true;\n\n setTimeout(function () {\n shouldWait = false;\n }, duration);\n }\n };\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 capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function secondToTime(second) {\n if (!second) return '00:00';\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\nexport function unescape(str) {\n const map = {\n '&': '&',\n '<': '<',\n '>': '>',\n ''': \"'\",\n '"': '\"',\n };\n const reg = new RegExp(`(${Object.keys(map).join('|')})`, 'g');\n return str.replace(reg, (tag) => map[tag] || tag);\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';\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 onChange: `?${f}`,\n};\n\nexport default {\n id: s,\n container: validElement,\n url: s,\n poster: 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 gesture: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n airplay: b,\n proxy: `?${f}`,\n plugins: [f],\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 width: n,\n height: n,\n scale: n,\n },\n subtitle: {\n url: s,\n name: s,\n type: s,\n style: o,\n escape: b,\n encoding: s,\n onVttLoad: f,\n },\n moreVideoAttr: o,\n i18n: o,\n icons: o,\n cssVar: 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: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'],\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 { supportsFlex, errorHandle, query, addClass, isMobile, replaceElement } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n const { option, constructor } = 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 errorHandle(supportsFlex(), 'The current browser does not support flex layout');\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.init();\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
${'__APP_VERSION__'}
\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 query(className) {\n return query(className, this.$container);\n }\n\n init() {\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.$track = this.query('track');\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.$contextmenu = this.query('.art-contextmenus');\n\n if (option.proxy) {\n const video = option.proxy.call(this.art, this.art);\n errorHandle(\n video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement,\n `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`,\n );\n replaceElement(video, this.$video);\n video.className = 'art-video';\n this.$video = video;\n }\n\n if (option.backdrop) {\n addClass(this.$player, 'art-backdrop');\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile');\n }\n }\n\n destroy(removeHtml) {\n this.$video.src = '';\n if (removeHtml) {\n this.$container.innerHTML = '';\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n\n this.languages = {\n 'zh-cn': zhCn,\n };\n\n this.language = {};\n\n this.update(art.option.i18n);\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","const zhCn = {\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 AirPlay: '隔空播放',\n 'AirPlay Not Available': '隔空播放不可用',\n};\n\nexport default zhCn;\n\nif (typeof window !== 'undefined') {\n window['artplayer-i18n-zh-cn'] = zhCn;\n}\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 posterMix from './posterMix';\nimport autoHeightMix from './autoHeightMix';\nimport cssVarMix from './cssVarMix';\nimport themeMix from './themeMix';\nimport typeMix from './typeMix';\nimport stateMix from './stateMix';\nimport subtitleOffsetMix from './subtitleOffsetMix';\nimport airplayMix from './airplayMix';\nimport qualityMix from './qualityMix';\nimport thumbnailsMix from './thumbnailsMix';\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 posterMix(art);\n autoHeightMix(art);\n cssVarMix(art);\n themeMix(art);\n typeMix(art);\n stateMix(art);\n subtitleOffsetMix(art);\n airplayMix(art);\n qualityMix(art);\n thumbnailsMix(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.src;\n },\n async set(newUrl) {\n if (newUrl) {\n const oldUrl = art.url;\n const typeName = option.type || getExt(newUrl);\n const typeCallback = option.customType[typeName];\n\n if (typeName && typeCallback) {\n await sleep();\n art.loading.show = true;\n typeCallback.call(art, $video, newUrl, art);\n } else {\n URL.revokeObjectURL(oldUrl);\n $video.src = newUrl;\n }\n\n if (oldUrl !== art.url) {\n art.option.url = newUrl;\n if (art.isReady && oldUrl) {\n art.once('video:canplay', () => {\n art.emit('restart', newUrl);\n });\n }\n }\n } else {\n await sleep();\n art.loading.show = true;\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: async function () {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\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 return result;\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 if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n }\n art.emit('seek', art.currentTime);\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 },\n });\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted;\n art.emit('muted', muted);\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 function switchUrl(url, currentTime) {\n return new Promise((resolve, reject) => {\n if (url === art.url) return;\n const { playing, aspectRatio, playbackRate } = art;\n\n art.pause();\n art.url = url;\n art.notice.show = '';\n\n art.once('video:error', reject);\n\n art.once('video:loadedmetadata', () => {\n art.currentTime = currentTime;\n });\n\n art.once('video:canplay', async () => {\n art.playbackRate = playbackRate;\n art.aspectRatio = aspectRatio;\n\n if (playing) {\n await art.play();\n }\n\n art.notice.show = '';\n\n resolve();\n });\n });\n }\n\n def(art, 'switchQuality', {\n value: (url) => {\n return switchUrl(url, art.currentTime);\n },\n });\n\n def(art, 'switchUrl', {\n value: (url) => {\n return switchUrl(url, 0);\n },\n });\n\n def(art, 'switch', {\n set: art.switchUrl,\n });\n}\n","import { 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 $video.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n } else {\n art.playbackRate = 1;\n }\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function aspectRatioMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\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 if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'margin', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':').map(Number);\n const { clientWidth, clientHeight } = $player;\n const playerRatio = clientWidth / clientHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n\n if (playerRatio > setupRatio) {\n setStyle($video, 'width', `${setupRatio * clientHeight}px`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'margin', '0 auto');\n } else {\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${clientWidth / setupRatio}px`);\n setStyle($video, 'margin', 'auto 0');\n }\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","import { secondToTime, download, def, createElement } from '../utils';\n\nexport default function screenshotMix(art) {\n const {\n notice,\n template: { $video },\n } = art;\n\n const $canvas = 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 (name) => {\n const dataUri = await art.getDataURL();\n const fileName = name || `artplayer_${secondToTime($video.currentTime)}`;\n download(dataUri, `${fileName}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n },\n });\n}\n","import screenfull 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 nativeScreenfull = (art) => {\n screenfull.on('change', () => {\n art.emit('fullscreen', screenfull.isFullscreen);\n\n if (screenfull.isFullscreen) {\n art.state = 'fullscreen';\n addClass($player, 'art-fullscreen');\n } else {\n removeClass($player, 'art-fullscreen');\n }\n\n art.emit('resize');\n });\n\n screenfull.on('error', (event) => {\n art.emit('fullscreenError', event);\n });\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n async set(value) {\n if (value) {\n await screenfull.request($player);\n } else {\n await screenfull.exit();\n }\n },\n });\n };\n\n const webkitScreenfull = (art) => {\n art.proxy(document, 'webkitfullscreenchange', () => {\n art.emit('fullscreen', art.fullscreen);\n art.emit('resize');\n });\n\n def(art, 'fullscreen', {\n get() {\n return document.fullscreenElement === $video;\n },\n set(value) {\n if (value) {\n art.state = 'fullscreen';\n $video.webkitEnterFullscreen();\n } else {\n $video.webkitExitFullscreen();\n }\n },\n });\n };\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art);\n } else if ($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","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\nconst nativeAPI = (() => {\n if (typeof document === 'undefined') {\n return false;\n }\n\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\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n};\n\nlet screenfull = {\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\nObject.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 get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n});\n\nif (!nativeAPI) {\n screenfull = { isEnabled: false };\n}\n\nexport default screenfull;\n","import { addClass, removeClass, hasClass, def, append, setStyle } from '../utils';\n\nexport default function fullscreenWebMix(art) {\n const {\n constructor,\n template: { $container, $player },\n } = art;\n\n let cssText = '';\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append(document.body, $player);\n }\n art.state = 'fullscreenWeb';\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', '100%');\n addClass($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', true);\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append($container, $player);\n }\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n removeClass($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', false);\n }\n\n art.emit('resize');\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art) {\n const {\n template: { $video },\n 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.state = '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', false);\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.state = 'pip';\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip', false);\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: () => {\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0;\n },\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: () => {\n if (typeof $video.playing === 'boolean') return $video.playing;\n return !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2);\n },\n });\n}\n","import { setStyle, def, getRect } from '../utils';\n\nexport default function resizeMix(art) {\n const { $container, $player, $video } = art.template;\n\n def(art, 'autoSize', {\n value() {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = getRect($container);\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\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 },\n });\n}\n","import { def, getRect } from '../utils';\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return getRect(art.template.$player);\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 { def, capitalize } 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 if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n $player.dataset.flip = flip;\n }\n\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(capitalize(flip))}`;\n art.emit('flip', flip);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport, createElement, getRect } from '../utils';\n\nexport default function miniMix(art) {\n const {\n icons,\n proxy,\n storage,\n template: { $player, $video },\n } = art;\n\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n removeClass($player, 'art-mini');\n setStyle($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n\n function initState($play, $pause) {\n if (art.playing) {\n setStyle($play, 'display', `none`);\n setStyle($pause, 'display', `flex`);\n } else {\n setStyle($play, 'display', `flex`);\n setStyle($pause, 'display', `none`);\n }\n }\n\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n append($mini, $video);\n return setStyle($mini, 'display', 'flex');\n } else {\n const $mini = createElement('div');\n addClass($mini, 'art-mini-popup');\n append(document.body, $mini);\n art.template.$mini = $mini;\n append($mini, $video);\n\n const $close = append($mini, `
`);\n append($close, icons.close);\n proxy($close, 'click', hideMini);\n\n const $state = append($mini, `
`);\n const $play = append($state, icons.play);\n const $pause = append($state, icons.pause);\n proxy($play, 'click', () => art.play());\n proxy($pause, 'click', () => art.pause());\n initState($play, $pause);\n art.on('video:playing', () => initState($play, $pause));\n art.on('video:pause', () => initState($play, $pause));\n art.on('video:timeupdate', () => initState($play, $pause));\n\n proxy($mini, 'mousedown', (event) => {\n isDroging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n addClass($mini, 'art-mini-droging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n setStyle($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($mini, 'art-mini-droging');\n const rect = getRect($mini);\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n setStyle($mini, 'left', `${rect.left}px`);\n setStyle($mini, 'top', `${rect.top}px`);\n setStyle($mini, 'transform', null);\n }\n });\n\n return $mini;\n }\n }\n\n function initMini() {\n const { $mini } = art.template;\n const rect = getRect($mini);\n const top = window.innerHeight - rect.height - 50;\n const left = window.innerWidth - rect.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n }\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n art.state = 'mini';\n addClass($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n if (!isInViewport($mini)) {\n initMini();\n }\n } else {\n initMini();\n }\n art.emit('mini', true);\n } else {\n hideMini();\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art) {\n const {\n template: { $poster },\n } = art;\n\n def(art, 'poster', {\n get: () => {\n try {\n return $poster.style['backgroundImage'].match(/\"(.*)\"/)[1];\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n return '';\n }\n },\n set(url) {\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function autoHeightMix(art) {\n const {\n template: { $container, $video },\n } = art;\n\n def(art, 'autoHeight', {\n value() {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n setStyle($container, 'height', height + 'px');\n art.emit('autoHeight', height);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function cssVarMix(art) {\n const { $player } = art.template;\n\n def(art, 'cssVar', {\n value(key, value) {\n if (value) {\n return $player.style.setProperty(key, value);\n } else {\n return getComputedStyle($player).getPropertyValue(key);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function themeMix(art) {\n def(art, 'theme', {\n get() {\n return art.cssVar('--art-theme');\n },\n set(theme) {\n art.cssVar('--art-theme', theme);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function typeMix(art) {\n def(art, 'type', {\n get() {\n return art.option.type;\n },\n set(type) {\n art.option.type = type;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function stateMix(art) {\n const states = ['mini', 'pip', 'fullscreen', 'fullscreenWeb'];\n def(art, 'state', {\n get: () => states.find((name) => art[name]) || 'standard',\n set(name) {\n for (let index = 0; index < states.length; index++) {\n const prop = states[index];\n if (prop !== name && art[prop]) {\n art[prop] = false;\n }\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function subtitleOffsetMix(art) {\n const { notice, i18n, template } = art;\n\n def(art, 'subtitleOffset', {\n get() {\n return template.$track?.offset || 0;\n },\n set(value) {\n const { cues } = art.subtitle;\n if (!template.$track || cues.length === 0) return;\n const offset = clamp(value, -10, 10);\n template.$track.offset = offset;\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index];\n cue.originalStartTime = cue.originalStartTime ?? cue.startTime;\n cue.originalEndTime = cue.originalEndTime ?? cue.endTime;\n cue.startTime = clamp(cue.originalStartTime + offset, 0, art.duration);\n cue.endTime = clamp(cue.originalEndTime + offset, 0, art.duration);\n }\n art.subtitle.update();\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`;\n art.emit('subtitleOffset', value);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function airplayMix(art) {\n const {\n i18n,\n notice,\n proxy,\n template: { $video },\n } = art;\n\n let available = true;\n\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) {\n proxy($video, 'webkitplaybacktargetavailabilitychanged', (event) => {\n switch (event.availability) {\n case 'available':\n available = true;\n break;\n case 'not-available':\n available = false;\n break;\n }\n });\n } else {\n available = false;\n }\n\n def(art, 'airplay', {\n value() {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else {\n notice.show = i18n.get('AirPlay Not Available');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function qualityMix(art) {\n def(art, 'quality', {\n set(quality) {\n const { controls, notice, i18n } = art;\n const qualityDefault = quality.find((item) => item.default) || quality[0];\n controls.update({\n name: 'quality',\n position: 'right',\n index: 10,\n style: {\n marginRight: '10px',\n },\n html: qualityDefault?.html || '',\n selector: quality,\n async onSelect(item) {\n await art.switchQuality(item.url);\n notice.show = `${i18n.get('Switch Video')}: ${item.html}`;\n return item.html;\n },\n });\n },\n });\n}\n","import { def, setStyle, isMobile, loadImg } from '../utils';\n\nexport default function thumbnailsMix(art) {\n const {\n events,\n option,\n template: { $progress, $video },\n } = art;\n\n let timer = null;\n let image = null;\n let loading = false;\n let isLoad = false;\n let isHover = false;\n\n function reset() {\n clearTimeout(timer);\n timer = null;\n image = null;\n loading = false;\n isLoad = false;\n }\n\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails;\n if (!$thumbnails) return;\n\n const { number, column, width, height, scale } = option.thumbnails;\n const width2 = width * scale || image.naturalWidth / column;\n const height2 = height * scale || width2 / ($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($thumbnails, 'backgroundImage', `url(${image.src})`);\n setStyle($thumbnails, 'height', `${height2}px`);\n setStyle($thumbnails, 'width', `${width2}px`);\n setStyle($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) {\n setStyle($thumbnails, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width2 / 2) {\n setStyle($thumbnails, 'left', `${$progress.clientWidth - width2}px`);\n } else {\n setStyle($thumbnails, 'left', `${posWidth - width2 / 2}px`);\n }\n }\n\n events.hover(\n $progress,\n () => {\n isHover = true;\n },\n () => {\n isHover = false;\n },\n );\n\n art.on('setBar', async (type, percentage, event) => {\n const $thumbnails = art.controls?.thumbnails;\n const { url, scale } = option.thumbnails;\n if (!$thumbnails || !url) return;\n\n const isMobileDroging = type === 'played' && event && isMobile;\n\n if (type === 'hover' || isMobileDroging) {\n if (!loading) {\n loading = true;\n image = await loadImg(url, scale);\n isLoad = true;\n }\n\n if (!isLoad || !isHover) return;\n\n const width = $progress.clientWidth * percentage;\n setStyle($thumbnails, 'display', 'flex');\n\n if (width > 0 && width < $progress.clientWidth) {\n showThumbnails(width);\n } else {\n if (!isMobile) {\n setStyle($thumbnails, 'display', 'none');\n }\n }\n\n if (isMobileDroging) {\n clearTimeout(timer);\n timer = setTimeout(() => {\n setStyle($thumbnails, 'display', 'none');\n }, 500);\n }\n }\n });\n\n def(art, 'thumbnails', {\n get() {\n return art.option.thumbnails;\n },\n set(thumbnails) {\n if (thumbnails.url && !art.option.isLive) {\n art.option.thumbnails = thumbnails;\n reset();\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 for (const key in option.moreVideoAttr) {\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 option.cssVar['--art-theme'] = option.theme;\n }\n\n for (const key in option.cssVar) {\n art.cssVar(key, option.cssVar[key]);\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 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 (error) => {\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', 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 }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.emit('resize');\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 if (art.playing) {\n art.loading.show = false;\n }\n });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n art.mask.show = true;\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 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 screenshot from './screenshot';\nimport airplay from './airplay';\nimport {\n def,\n sleep,\n append,\n addClass,\n isMobile,\n removeClass,\n errorHandle,\n inverseClass,\n createElement,\n includeFromEvent,\n} from '../utils';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.isHover = false;\n this.name = 'control';\n this.timer = Date.now();\n\n const { constructor } = art;\n const { $player, $bottom } = this.art.template;\n\n art.on('mousemove', () => {\n if (!isMobile) {\n this.show = true;\n }\n });\n\n art.on('click', () => {\n if (isMobile) {\n this.toggle();\n } else {\n this.show = true;\n }\n });\n\n art.on('document:mousemove', (event) => {\n this.isHover = includeFromEvent(event, $bottom);\n });\n\n art.on('video:timeupdate', () => {\n if (\n !art.setting.show &&\n !this.isHover &&\n !art.isInput &&\n art.playing &&\n this.show &&\n Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME\n ) {\n this.show = false;\n }\n });\n\n art.on('control', (state) => {\n if (state) {\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.timer = Date.now();\n } else {\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 if (!option.isLive) {\n this.add(\n progress({\n name: 'progress',\n position: 'top',\n index: 10,\n }),\n );\n }\n\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n });\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n position: 'left',\n index: 20,\n }),\n );\n\n if (!option.isLive) {\n this.add(\n time({\n name: 'time',\n position: 'left',\n index: 30,\n }),\n );\n }\n\n if (option.quality.length) {\n sleep().then(() => {\n this.art.quality = option.quality;\n });\n }\n\n if (option.screenshot && !isMobile) {\n this.add(\n screenshot({\n name: 'screenshot',\n position: 'right',\n index: 20,\n }),\n );\n }\n\n if (option.setting) {\n this.add(\n setting({\n name: 'setting',\n position: 'right',\n index: 30,\n }),\n );\n }\n\n if (option.pip) {\n this.add(\n pip({\n name: 'pip',\n position: 'right',\n index: 40,\n }),\n );\n }\n\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) {\n this.add(\n airplay({\n name: 'airplay',\n position: 'right',\n index: 50,\n }),\n );\n }\n\n if (option.fullscreenWeb) {\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60,\n }),\n );\n }\n\n if (option.fullscreen) {\n this.add(\n fullscreen({\n name: 'fullscreen',\n position: 'right',\n index: 70,\n }),\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 check(target) {\n target.$control_value.innerHTML = target.html;\n for (let index = 0; index < target.$control_option.length; index++) {\n const item = target.$control_option[index];\n item.default = item === target;\n if (item.default) {\n inverseClass(item.$control_item, 'art-current');\n }\n }\n }\n\n selector(option, $ref, events) {\n const { proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const $list = createElement('div');\n addClass($list, 'art-selector-list');\n append($ref, $list);\n\n for (let index = 0; index < option.selector.length; index++) {\n const item = option.selector[index];\n const $item = createElement('div');\n addClass($item, 'art-selector-item');\n if (item.default) addClass($item, 'art-current');\n $item.dataset.index = index;\n $item.dataset.value = item.value;\n $item.innerHTML = item.html;\n append($list, $item);\n\n def(item, '$control_option', {\n get: () => option.selector,\n });\n\n def(item, '$control_item', {\n get: () => $item,\n });\n\n def(item, '$control_value', {\n get: () => $value,\n });\n }\n\n const event = proxy($list, 'click', async (event) => {\n const path = event.composedPath() || [];\n const item = option.selector.find(\n (item) => item.$control_item === path.find(($item) => item.$control_item === $item),\n );\n this.check(item);\n if (option.onSelect) {\n $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event);\n }\n });\n\n events.push(event);\n }\n}\n","import { remove, append, tooltip, hasClass, addClass, setStyles, removeClass, createElement } from './dom';\nimport { errorHandle } from './error';\nimport validator from 'option-validator';\nimport { ComponentOption } from '../scheme';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.cache = new Map();\n this.add = this.add.bind(this);\n this.remove = this.remove.bind(this);\n this.update = this.update.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 toggle() {\n this.show = !this.show;\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 if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n const item = this.cache.get(name);\n errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = 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 const events = [];\n if (option.click) {\n const destroyEvent = this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n events.push(destroyEvent);\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref, events);\n }\n\n this[name] = $ref;\n this.cache.set(name, { $ref, events, option });\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n return $ref;\n }\n\n remove(name) {\n const item = this.cache.get(name);\n errorHandle(item, `Can't find [${name}] from the [${this.name}]`);\n\n if (item.option.beforeUnmount) {\n item.option.beforeUnmount.call(this.art, item.$ref);\n }\n\n for (let index = 0; index < item.events.length; index++) {\n this.art.events.remove(item.events[index]);\n }\n\n this.cache.delete(name);\n delete this[name];\n remove(item.$ref);\n }\n\n update(option) {\n const item = this.cache.get(option.name);\n if (item) {\n option = Object.assign(item.option, option);\n this.remove(option.name);\n }\n return this.add(option);\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 { proxy, icons, i18n } = 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', (state) => {\n if (state) {\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 { proxy, icons, i18n } = 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 { proxy, icons, i18n } = 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 { proxy, icons, i18n } = 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, secondToTime, includeFromEvent, isMobile, getRect } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = getRect($progress);\n const eventLeft = isMobile ? event.touches[0].clientX : event.clientX;\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 function setCurrentTime(art, event) {\n if (art.isRotate) {\n const percentage = event.touches[0].clientY / art.height;\n const second = percentage * art.duration;\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n } else {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n }\n}\n\nexport default function progress(options) {\n return (art) => {\n const { icons, option, proxy } = art;\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let tipTimer = null;\n let isDroging = false;\n\n const $hover = query('.art-progress-hover', $control);\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 if (icons.indicator) {\n append($indicator, icons.indicator);\n } else {\n setStyle($indicator, 'backgroundColor', 'var(--art-theme)');\n }\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerText = 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, touch) {\n const { width, time } = touch || getPosFromEvent(art, event);\n $tip.innerText = 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 updateHighlight() {\n $highlight.innerText = '';\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 const html = ``;\n append($highlight, html);\n }\n }\n\n function setBar(type, percentage, event) {\n const isMobileDroging = type === 'played' && event && isMobile;\n\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'hover') {\n setStyle($hover, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle($indicator, 'left', `${percentage * 100}%`);\n }\n\n if (isMobileDroging) {\n setStyle($tip, 'display', 'flex');\n const width = $control.clientWidth * percentage;\n const time = secondToTime(percentage * art.duration);\n showTime(event, { width, time });\n clearTimeout(tipTimer);\n tipTimer = setTimeout(() => {\n setStyle($tip, 'display', 'none');\n }, 500);\n }\n }\n\n art.on('setBar', setBar);\n art.on('video:loadedmetadata', updateHighlight);\n\n if (art.constructor.USE_RAF) {\n art.on('raf', () => {\n art.emit('setBar', 'played', art.played);\n art.emit('setBar', 'loaded', art.loaded);\n });\n } else {\n art.on('video:timeupdate', () => {\n art.emit('setBar', 'played', art.played);\n });\n\n art.on('video:progress', () => {\n art.emit('setBar', 'loaded', art.loaded);\n });\n\n art.on('video:ended', () => {\n art.emit('setBar', 'played', 1);\n });\n }\n\n art.emit('setBar', 'loaded', art.loaded || 0);\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n setCurrentTime(art, event);\n }\n });\n\n proxy($control, 'mousemove', (event) => {\n const { percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'hover', percentage, event);\n setStyle($tip, 'display', 'flex');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseleave', (event) => {\n setStyle($tip, 'display', 'none');\n art.emit('setBar', 'hover', 0, event);\n });\n\n proxy($control, 'mousedown', (event) => {\n isDroging = event.button === 0;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n }\n },\n };\n };\n}\n","import { secondToTime, isMobile } from '../utils';\n\nexport default function time(option) {\n return (art) => ({\n ...option,\n style: isMobile\n ? {\n fontSize: '12px',\n padding: '0 5px',\n }\n : {\n cursor: 'auto',\n padding: '0 10px',\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, setStyle, isMobile, getRect } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n const $volume = append($control, icons.volume);\n const $close = append($control, icons.volumeClose);\n const $panel = append($control, '
');\n const $inner = append($panel, '
');\n const $value = append($inner, `
`);\n const $slider = append($inner, `
`);\n const $handle = append($slider, `
`);\n const $loaded = append($handle, `
`);\n const $indicator = append($slider, `
`);\n\n function getVolumeFromEvent(event) {\n const { top, height } = getRect($slider);\n return 1 - (event.clientY - top) / height;\n }\n\n function update() {\n if (art.muted || art.volume === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($close, 'display', 'flex');\n setStyle($indicator, 'top', '100%');\n setStyle($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n setStyle($volume, 'display', 'flex');\n setStyle($close, 'display', 'none');\n setStyle($indicator, 'top', `${100 - percentage}%`);\n setStyle($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n\n update();\n art.on('video:volumechange', update);\n\n proxy($volume, 'click', () => {\n art.muted = true;\n });\n\n proxy($close, 'click', () => {\n art.muted = false;\n });\n\n if (isMobile) {\n setStyle($panel, 'display', 'none');\n } else {\n let isDroging = false;\n\n proxy($slider, 'mousedown', (event) => {\n isDroging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n\n art.on('document:mousemove', (event) => {\n if (isDroging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\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 { proxy, icons, i18n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n art.setting.toggle();\n art.setting.resize();\n });\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\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 { proxy, icons } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n art.screenshot();\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n append($control, icons.airplay);\n proxy($control, 'click', () => art.airplay());\n },\n });\n}\n","import { setStyles, includeFromEvent, isMobile, getRect } 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 proxy,\n template: { $player, $contextmenu },\n } = this.art;\n\n if (option.playbackRate) {\n this.add(\n playbackRate({\n name: 'playbackRate',\n index: 10,\n }),\n );\n }\n\n if (option.aspectRatio) {\n this.add(\n aspectRatio({\n name: 'aspectRatio',\n index: 20,\n }),\n );\n }\n\n if (option.flip) {\n this.add(\n flip({\n name: 'flip',\n index: 30,\n }),\n );\n }\n\n this.add(\n info({\n name: 'info',\n index: 40,\n }),\n );\n\n this.add(\n version({\n name: 'version',\n index: 50,\n }),\n );\n\n this.add(\n close({\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 if (!this.art.constructor.CONTEXTMENU) return;\n event.preventDefault();\n\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 } = getRect($player);\n const { height: mHeight, width: mWidth } = getRect($contextmenu);\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, query, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const {\n i18n,\n constructor: { PLAYBACK_RATE },\n } = art;\n\n const html = PLAYBACK_RATE.map(\n (item) => `${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Play Speed')}: ${html}`,\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 const $default = query('[data-value=\"1\"]', $panel);\n if ($default) inverseClass($default, 'art-current');\n art.on('video:ratechange', () => {\n const $current = queryAll('span', $panel).find(\n (item) => Number(item.dataset.value) === art.playbackRate,\n );\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const {\n i18n,\n constructor: { ASPECT_RATIO },\n } = art;\n\n const html = ASPECT_RATIO.map(\n (item) => `${item === 'default' ? i18n.get('Default') : item}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}: ${html}`,\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 const $default = query('[data-value=\"default\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\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, query, queryAll, capitalize } from '../utils';\n\nexport default function flip(option) {\n return (art) => {\n const {\n i18n,\n constructor: { FLIP },\n } = art;\n\n const html = FLIP.map((item) => `${i18n.get(capitalize(item))}`).join('');\n\n return {\n ...option,\n html: `${i18n.get('Video Flip')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.flip = value.toLowerCase();\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"normal\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\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 ${'__APP_VERSION__'}`,\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 proxy,\n constructor,\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 this.art.on('destroy', () => clearTimeout(timer));\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 {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n escape,\n remove,\n append,\n createElement,\n} 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 this.name = 'subtitle';\n this.option = null;\n this.destroyEvent = () => null;\n this.init(art.option.subtitle);\n\n let lastState = false;\n art.on('video:timeupdate', () => {\n if (!this.url) return;\n const state = this.art.template.$video.webkitDisplayingFullscreen;\n if (typeof state !== 'boolean') return;\n if (state !== lastState) {\n lastState = state;\n this.createTrack(state ? 'subtitles' : 'metadata', this.url);\n }\n });\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 activeCues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.activeCues);\n }\n\n get cues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.cues);\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 {\n option: { subtitle },\n template: { $subtitle },\n } = this.art;\n\n $subtitle.innerHTML = '';\n if (!this.activeCues.length) return;\n\n this.art.emit('subtitleBeforeUpdate', this.activeCues);\n $subtitle.innerHTML = this.activeCues\n .map((cue, index) =>\n cue.text\n .split(/\\r?\\n/)\n .filter((line) => line.trim())\n .map(\n (line) =>\n `
\n ${subtitle.escape ? escape(line) : line}\n
`,\n )\n .join(''),\n )\n .join('');\n this.art.emit('subtitleAfterUpdate', this.activeCues);\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 createTrack(kind, url) {\n const { template, proxy, option } = this.art;\n const { $video, $track } = template;\n\n const $newTrack = createElement('track');\n $newTrack.default = true;\n $newTrack.kind = kind;\n $newTrack.src = url;\n $newTrack.label = option.subtitle.name || 'Artplayer';\n $newTrack.track.mode = 'hidden';\n $newTrack.onload = () => {\n this.art.emit('subtitleLoad', this.cues, this.option);\n };\n\n this.art.events.remove(this.destroyEvent);\n $track.onload = null;\n remove($track);\n append($video, $newTrack);\n template.$track = $newTrack;\n this.destroyEvent = proxy(this.textTrack, 'cuechange', () => this.update());\n }\n\n async init(subtitleOption) {\n const {\n notice,\n template: { $subtitle },\n } = this.art;\n\n if (!this.textTrack) return null;\n validator(subtitleOption, scheme.subtitle);\n if (!subtitleOption.url) return;\n this.option = subtitleOption;\n this.style(subtitleOption.style);\n\n return fetch(subtitleOption.url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt': {\n const vtt = srtToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'ass': {\n const vtt = assToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'vtt': {\n const vttNew = subtitleOption.onVttLoad(text);\n return vttToBlob(vttNew);\n }\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.createTrack('metadata', subUrl);\n return subUrl;\n })\n .catch((err) => {\n $subtitle.innerHTML = '';\n notice.show = err;\n throw err;\n });\n }\n}\n","import clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport moveInit from './moveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\nimport documentInit from './documentInit';\nimport updateInit from './updateInit';\nimport restoreInit from './restoreInit';\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\n clickInit(art, this);\n hoverInit(art, this);\n moveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n documentInit(art, this);\n updateInit(art, this);\n restoreInit(art, this);\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 remove(destroyEvent) {\n const index = this.destroyEvents.indexOf(destroyEvent);\n if (index > -1) {\n destroyEvent();\n this.destroyEvents.splice(index, 1);\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', event);\n } else {\n art.isInput = false;\n art.isFocus = false;\n art.emit('blur', event);\n }\n });\n\n let clickTimes = [];\n events.proxy($video, 'click', (event) => {\n const now = Date.now();\n clickTimes.push(now);\n const { MOBILE_CLICK_PLAY, DBCLICK_TIME, MOBILE_DBCLICK_PLAY, DBCLICK_FULLSCREEN } = constructor;\n\n const clicks = clickTimes.filter((t) => now - t <= DBCLICK_TIME);\n switch (clicks.length) {\n case 1:\n art.emit('click', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) {\n art.toggle();\n }\n } else {\n art.toggle();\n }\n clickTimes = clicks;\n break;\n case 2:\n art.emit('dblclick', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) {\n art.toggle();\n }\n } else {\n if (DBCLICK_FULLSCREEN) {\n art.fullscreen = !art.fullscreen;\n }\n }\n clickTimes = [];\n break;\n default:\n clickTimes = [];\n }\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 (event) => {\n addClass($player, 'art-hover');\n art.emit('hover', true, event);\n },\n (event) => {\n removeClass($player, 'art-hover');\n art.emit('hover', false, event);\n },\n );\n}\n","export default function moveInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { debounce } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, constructor } = art;\n\n art.on('resize', () => {\n const { aspectRatio, notice } = art;\n if (art.state === 'standard' && option.autoSize) {\n art.autoSize();\n }\n art.aspectRatio = aspectRatio;\n notice.show = '';\n });\n\n const resizeFn = debounce(() => art.emit('resize'), constructor.RESIZE_TIME);\n events.proxy(window, ['orientationchange', 'resize'], () => resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => resizeFn());\n }\n}\n","import { clamp, secondToTime, isMobile } from '../utils';\nimport { setCurrentTime } from '../control/progress';\n\nfunction GetSlideAngle(dx, dy) {\n return (Math.atan2(dy, dx) * 180) / Math.PI;\n}\n\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {\n return result;\n }\n\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) {\n result = 4;\n } else if (angle >= 45 && angle < 135) {\n result = 1;\n } else if (angle >= -135 && angle < -45) {\n result = 2;\n } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {\n result = 3;\n }\n\n return result;\n}\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $progress } = art.template;\n\n let touchTarget = null;\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 if (touchTarget === $progress) {\n setCurrentTime(art, event);\n }\n\n isDroging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\n }\n };\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDroging && art.duration) {\n const { pageX, pageY } = event.touches[0];\n const direction = GetSlideDirection(startX, startY, pageX, pageY);\n const isHorizontal = [3, 4].includes(direction);\n const isVertical = [1, 2].includes(direction);\n const isLegal = (isHorizontal && !art.isRotate) || (isVertical && art.isRotate);\n if (isLegal) {\n const ratioX = clamp((pageX - startX) / art.width, -1, 1);\n const ratioY = clamp((pageY - startY) / art.height, -1, 1);\n const ratio = art.isRotate ? ratioY : ratioX;\n const TOUCH_MOVE_RATIO = touchTarget === $video ? art.constructor.TOUCH_MOVE_RATIO : 1;\n const currentTime = clamp(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1), event);\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`;\n }\n }\n };\n\n const onTouchEnd = () => {\n if (isDroging) {\n startX = 0;\n startY = 0;\n startTime = 0;\n isDroging = false;\n touchTarget = null;\n }\n };\n\n if (art.option.gesture) {\n events.proxy($video, 'touchstart', (event) => {\n touchTarget = $video;\n onTouchStart(event);\n });\n events.proxy($video, 'touchmove', onTouchMove);\n }\n\n events.proxy($progress, 'touchstart', (event) => {\n touchTarget = $progress;\n onTouchStart(event);\n });\n\n events.proxy($progress, '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', () => scrollFn());\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state;\n }\n });\n}\n","export default function documentInit(art, events) {\n events.proxy(document, 'mousemove', (event) => {\n art.emit('document:mousemove', event);\n });\n\n events.proxy(document, 'mouseup', (event) => {\n art.emit('document:mouseup', event);\n });\n}\n","export default function updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n\n (function update() {\n if (art.playing) {\n art.emit('raf');\n }\n\n if (!art.isDestroy) {\n timer = requestAnimationFrame(update);\n }\n })();\n\n art.on('destroy', () => {\n cancelAnimationFrame(timer);\n });\n }\n}\n","export default function restoreInit(art, events) {\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, constructor } = this.art;\n\n this.add('Escape', () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false;\n }\n });\n\n this.add('Space', () => {\n this.art.toggle();\n });\n\n this.add('ArrowLeft', () => {\n this.art.backward = constructor.SEEK_STEP;\n });\n\n this.add('ArrowUp', () => {\n this.art.volume += constructor.VOLUME_STEP;\n });\n\n this.add('ArrowRight', () => {\n this.art.forward = constructor.SEEK_STEP;\n });\n\n this.add('ArrowDown', () => {\n this.art.volume -= constructor.VOLUME_STEP;\n });\n\n proxy(document, 'keydown', (event) => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true' &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey\n ) {\n const events = this.keys[event.code];\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 this.art.emit('keydown', event);\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 { def, getIcon } 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';\nimport airplay from 'bundle-text:./airplay.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 airplay,\n ...art.option.icons,\n };\n\n for (const key in icons) {\n def(this, key, {\n get: () => getIcon(key, icons[key]),\n });\n }\n }\n}\n","module.exports = \"75a057509707bc87\";","module.exports = \"820f454e33d34914\";","module.exports = \"6e9bb7fa28118e05\";","module.exports = \"4838679ac81bbe80\";","module.exports = \"b491c01323e26afb\";","module.exports = \"95ec2167c54ce911\";","module.exports = \"1499cf92f6f33dd9\";","module.exports = \"e4ecf862ed860d42\";","module.exports = \"a391299de3225f80\";","module.exports = \"ea3f9694841ef258\";","module.exports = \"b67cac358913d514\";","module.exports = \"46895f0cf70aca10\";","module.exports = \"65c783bf793215eb\";","module.exports = \"3fa24efddec6bcbd\";","module.exports = \"0d8559370ca5b4ef\";","module.exports = \"358c932d8356421e\";","module.exports = \"7cf671d989be8873\";","module.exports = \"a76d6978226feea3\";","module.exports = \"fe487e5ddec5d380\";","module.exports = \"3f492d6cd9c76858\";","module.exports = \"46c741c838cae528\";","module.exports = \"ca0154888ac784ab\";","module.exports = \"03b02c181a6fb9ce\";","module.exports = \"9b95a2cd859b7b0b\";","module.exports = \"d3353905d0ec07f0\";","module.exports = \"ece62effeeaea8b9\";","module.exports = \"9e11ac5830b69238\";","import flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\nimport subtitleOffset from './subtitleOffset';\nimport Component from '../utils/component';\nimport {\n def,\n has,\n remove,\n append,\n getRect,\n addClass,\n setStyle,\n isMobile,\n errorHandle,\n inverseClass,\n createElement,\n replaceElement,\n includeFromEvent,\n} from '../utils';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n controls,\n template: { $setting },\n } = art;\n\n this.name = 'setting';\n this.$parent = $setting;\n\n this.id = 0;\n this.active = null;\n this.cache = new Map();\n this.option = [...this.builtin, ...option.settings];\n\n if (option.setting) {\n this.format();\n this.render();\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false;\n this.render();\n }\n });\n\n art.on('focus', (event) => {\n const isControl = includeFromEvent(event, controls.setting);\n const isSetting = includeFromEvent(event, this.$parent);\n if (this.show && !isControl && !isSetting) {\n this.show = false;\n this.render();\n }\n });\n\n art.on('resize', () => this.resize());\n }\n }\n\n get builtin() {\n const result = [];\n const { option } = this.art;\n\n if (option.playbackRate) {\n result.push(playbackRate(this.art));\n }\n\n if (option.aspectRatio) {\n result.push(aspectRatio(this.art));\n }\n\n if (option.flip) {\n result.push(flip(this.art));\n }\n\n if (option.subtitleOffset) {\n result.push(subtitleOffset(this.art));\n }\n\n return result;\n }\n\n traverse(callback, option = this.option) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n callback(item);\n if (item.selector?.length) {\n this.traverse.call(this, callback, item.selector);\n }\n }\n }\n\n check(target) {\n target.$parent.tooltip = target.html;\n this.traverse((item) => {\n item.default = item === target;\n if (item.default && item.$item) {\n inverseClass(item.$item, 'art-current');\n }\n }, target.$option);\n this.render(target.$parents);\n }\n\n format(option = this.option, parent, parents, names = []) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n\n if (item?.name) {\n errorHandle(!names.includes(item.name), `The [${item.name}] is already exist in [setting]`);\n names.push(item.name);\n } else {\n item.name = `setting-${this.id++}`;\n }\n\n if (!item.$formatted) {\n def(item, '$parent', {\n get: () => parent,\n });\n\n def(item, '$parents', {\n get: () => parents,\n });\n\n def(item, '$option', {\n get: () => option,\n });\n\n const $events = [];\n def(item, '$events', {\n get: () => $events,\n });\n\n def(item, '$formatted', {\n get: () => true,\n });\n }\n\n this.format(item.selector || [], item, option, names);\n }\n\n this.option = option;\n }\n\n find(name = '') {\n let result = null;\n this.traverse((item) => {\n if (item.name === name) {\n result = item;\n }\n });\n return result;\n }\n\n resize() {\n const {\n controls,\n constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT },\n template: { $player, $setting },\n } = this.art;\n\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = getRect(controls.setting);\n const { left: playerLeft, width: playerWidth } = getRect($player);\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n\n const settingHeight =\n this.active === this.option\n ? this.active.length * SETTING_ITEM_HEIGHT\n : (this.active.length + 1) * SETTING_ITEM_HEIGHT;\n\n setStyle($setting, 'height', `${settingHeight}px`);\n setStyle($setting, 'width', `${settingWidth}px`);\n\n if (this.art.isRotate || isMobile) return;\n\n if (settingLeft + settingWidth > playerWidth) {\n setStyle($setting, 'left', null);\n setStyle($setting, 'right', null);\n } else {\n setStyle($setting, 'left', `${settingLeft}px`);\n setStyle($setting, 'right', 'auto');\n }\n }\n }\n\n inactivate(item) {\n for (let index = 0; index < item.$events.length; index++) {\n this.art.events.remove(item.$events[index]);\n }\n item.$events.length = 0;\n }\n\n remove(name) {\n const item = this.find(name);\n errorHandle(item, `Can't find [${name}] in the [setting]`);\n const index = item.$option.indexOf(item);\n item.$option.splice(index, 1);\n this.inactivate(item);\n if (item.$item) remove(item.$item);\n this.render();\n }\n\n update(target) {\n const item = this.find(target.name);\n\n if (item) {\n this.inactivate(item);\n Object.assign(item, target);\n this.format();\n this.creatItem(item, true);\n this.render();\n return item;\n } else {\n return this.add(target);\n }\n }\n\n add(item, option = this.option) {\n option.push(item);\n this.format();\n this.creatItem(item);\n this.render();\n return item;\n }\n\n creatHeader(item) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n\n const {\n proxy,\n icons: { arrowLeft },\n constructor: { SETTING_ITEM_HEIGHT },\n } = this.art;\n\n const $item = createElement('div');\n setStyle($item, 'height', `${SETTING_ITEM_HEIGHT}px`);\n addClass($item, 'art-setting-item');\n addClass($item, 'art-setting-item-back');\n const $left = append($item, '
');\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n append($icon, arrowLeft);\n append($left, $icon);\n append($left, item.$parent.html);\n const event = proxy($item, 'click', () => this.render(item.$parents));\n item.$parent.$events.push(event);\n append($panel, $item);\n }\n\n creatItem(item, isUpdate = false) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n const oldItem = item.$item;\n\n let type = 'selector';\n\n if (has(item, 'switch')) {\n type = 'switch';\n }\n\n if (has(item, 'range')) {\n type = 'range';\n }\n\n if (has(item, 'onClick')) {\n type = 'button';\n }\n\n const { icons, proxy, constructor } = this.art;\n\n const $item = createElement('div');\n addClass($item, 'art-setting-item');\n setStyle($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`);\n\n $item.dataset.name = item.name || '';\n $item.dataset.value = item.value || '';\n\n const $left = append($item, '
');\n const $right = append($item, '
');\n\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n\n switch (type) {\n case 'button':\n case 'switch':\n case 'range':\n append($icon, item.icon || icons.config);\n break;\n case 'selector':\n if (item.selector?.length) {\n append($icon, item.icon || icons.config);\n } else {\n append($icon, icons.check);\n }\n break;\n default:\n break;\n }\n\n append($left, $icon);\n\n def(item, '$icon', {\n configurable: true,\n get: () => $icon,\n });\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML;\n },\n set(value) {\n $icon.innerHTML = '';\n append($icon, value);\n },\n });\n\n const $html = createElement('div');\n addClass($html, 'art-setting-item-left-text');\n append($html, item.html || '');\n append($left, $html);\n\n def(item, '$html', {\n configurable: true,\n get: () => $html,\n });\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML;\n },\n set(value) {\n $html.innerHTML = '';\n append($html, value);\n },\n });\n\n const $tooltip = createElement('div');\n addClass($tooltip, 'art-setting-item-right-tooltip');\n append($tooltip, item.tooltip || '');\n append($right, $tooltip);\n\n def(item, '$tooltip', {\n configurable: true,\n get: () => $tooltip,\n });\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML;\n },\n set(value) {\n $tooltip.innerHTML = '';\n append($tooltip, value);\n },\n });\n\n switch (type) {\n case 'switch': {\n const $switch = createElement('div');\n addClass($switch, 'art-setting-item-right-icon');\n const $switchOn = append($switch, icons.switchOn);\n const $switchOff = append($switch, icons.switchOff);\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none');\n append($right, $switch);\n\n def(item, '$switch', {\n configurable: true,\n get: () => $switch,\n });\n\n let $switchValue = item.switch;\n def(item, 'switch', {\n configurable: true,\n get: () => $switchValue,\n set(value) {\n $switchValue = 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 = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $range = append($state, '');\n $range.value = item.range[0];\n $range.min = item.range[1];\n $range.max = item.range[2];\n $range.step = item.range[3];\n addClass($range, 'art-setting-range');\n append($right, $state);\n\n def(item, '$range', {\n configurable: true,\n get: () => $range,\n });\n\n let $rangeValue = [...item.range];\n def(item, 'range', {\n configurable: true,\n get: () => $rangeValue,\n set(value) {\n $rangeValue = [...value];\n $range.value = value[0];\n $range.min = value[1];\n $range.max = value[2];\n $range.step = value[3];\n },\n });\n }\n break;\n case 'selector':\n if (item.selector?.length) {\n const $state = 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 item.$events.push(event);\n }\n break;\n }\n case 'range': {\n if (item.$range) {\n if (item.onRange) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.range[0] = item.$range.valueAsNumber;\n item.tooltip = await item.onRange.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n\n if (item.onChange) {\n const event = proxy(item.$range, 'input', async (event) => {\n item.range[0] = item.$range.valueAsNumber;\n item.tooltip = await item.onChange.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n }\n break;\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector?.length) {\n this.render(item.selector);\n } else {\n this.check(item);\n if (item.$parent.onSelect) {\n item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event);\n }\n }\n });\n\n item.$events.push(event);\n\n if (item.default) {\n addClass($item, 'art-current');\n }\n }\n break;\n case 'button':\n {\n if (item.onClick) {\n const event = proxy($item, 'click', async (event) => {\n item.tooltip = await item.onClick.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n }\n break;\n default:\n break;\n }\n\n def(item, '$item', {\n configurable: true,\n get: () => $item,\n });\n\n if (isUpdate) {\n replaceElement($item, oldItem);\n } else {\n append($panel, $item);\n }\n\n if (item.mounted) {\n setTimeout(() => item.mounted.call(this.art, item.$item, item), 0);\n }\n }\n\n render(option = this.option) {\n this.active = option;\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n inverseClass($panel, 'art-current');\n } else {\n const $panel = createElement('div');\n this.cache.set(option, $panel);\n addClass($panel, 'art-setting-panel');\n append(this.$parent, $panel);\n inverseClass($panel, 'art-current');\n\n if (option[0]?.$parent) {\n this.creatHeader(option[0]);\n }\n\n for (let index = 0; index < option.length; index++) {\n this.creatItem(option[index]);\n }\n }\n this.resize();\n }\n}\n","import { capitalize } from '../utils';\n\nexport default function flip(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, FLIP },\n } = art;\n\n function getI18n(value) {\n return i18n.get(capitalize(value));\n }\n\n function update() {\n const target = art.setting.find(`flip-${art.flip}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'flip',\n html: i18n.get('Video Flip'),\n tooltip: getI18n(art.flip),\n icon: icons.flip,\n selector: FLIP.map((item) => {\n return {\n value: item,\n name: `flip-${item}`,\n default: item === art.flip,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.flip = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('flip', () => update());\n },\n };\n}\n","export default function aspectRatio(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO },\n } = art;\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'aspect-ratio',\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ASPECT_RATIO.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.aspectRatio,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.aspectRatio = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('aspectRatio', () => update());\n },\n };\n}\n","export default function playbackRate(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE },\n } = art;\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'playback-rate',\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: PLAYBACK_RATE.map((item) => {\n return {\n value: item,\n name: `playback-rate-${item}`,\n default: item === art.playbackRate,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.playbackRate = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('video:ratechange', () => update());\n },\n };\n}\n","export default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n name: 'subtitle-offset',\n html: i18n.get('Subtitle Offset'),\n icon: icons.subtitle,\n tooltip: '0s',\n range: [0, -10, 10, 0.1],\n onChange(item) {\n art.subtitleOffset = item.range[0];\n return item.range[0] + 's';\n },\n mounted: (_, item) => {\n art.on('subtitleOffset', (value) => {\n item.$range.value = value;\n item.tooltip = value + 's';\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 // eslint-disable-next-line no-unused-vars\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 // eslint-disable-next-line no-unused-vars\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 // eslint-disable-next-line no-unused-vars\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name);\n // eslint-disable-next-line no-unused-vars\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 && !option.isLive) {\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.art, this.art);\n if (result instanceof Promise) {\n return result.then((res) => this.next(plugin, res));\n } else {\n return this.next(plugin, result);\n }\n }\n\n next(plugin, result) {\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","import { addClass, removeClass } from '../utils';\n\nexport default function miniProgressBar(art) {\n art.on('control', (state) => {\n if (state) {\n removeClass(art.template.$player, 'art-mini-progress-bar');\n } else {\n addClass(art.template.$player, 'art-mini-progress-bar');\n }\n });\n\n return { name: 'mini-progress-bar' };\n}\n","import { setStyle, addClass, removeClass, hasClass } from '../utils';\n\nexport default function autoOrientation(art) {\n const {\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.isRotate = true;\n art.emit('resize');\n }, constructor.AUTO_ORIENTATION_TIME);\n }\n } else {\n if (hasClass($player, 'art-auto-orientation')) {\n removeClass($player, 'art-auto-orientation');\n art.isRotate = false;\n art.emit('resize');\n }\n }\n });\n\n art.on('fullscreen', async (state) => {\n if (!screen?.orientation?.lock) return;\n\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 proxy,\n template: { $poster },\n } = art;\n\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `,\n });\n\n const $last = query('.art-auto-playback-last', $autoPlayback);\n const $jump = query('.art-auto-playback-jump', $autoPlayback);\n const $close = query('.art-auto-playback-close', $autoPlayback);\n append($close, icons.close);\n\n let timer = null;\n\n art.on('video:timeupdate', () => {\n if (art.playing) {\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.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n\n function init() {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n\n clearTimeout(timer);\n setStyle($autoPlayback, 'display', 'none');\n\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\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.once('video:timeupdate', () => {\n timer = setTimeout(() => {\n setStyle($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n }\n\n art.on('ready', init);\n art.on('restart', init);\n\n return {\n name: 'auto-playback',\n get times() {\n return storage.get('times') || {};\n },\n clear() {\n return storage.del('times');\n },\n delete(id) {\n const times = storage.get('times') || {};\n delete times[id];\n storage.set('times', times);\n return times;\n },\n };\n}\n","import { hasClass, addClass, removeClass } from '../utils';\n\nexport default function fastForward(art) {\n const {\n constructor,\n proxy,\n template: { $player, $video },\n } = art;\n\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true;\n lastPlaybackRate = art.playbackRate;\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 = lastPlaybackRate;\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 function getState() {\n return hasClass($player, 'art-lock');\n }\n\n function setLock() {\n addClass($player, 'art-lock');\n art.isLock = true;\n art.emit('lock', true);\n }\n\n function setUnlock() {\n removeClass($player, 'art-lock');\n art.isLock = false;\n art.emit('lock', false);\n }\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 (getState()) {\n setUnlock();\n } else {\n setLock();\n }\n },\n });\n\n return {\n name: 'lock',\n get state() {\n return getState();\n },\n set state(value) {\n if (value) {\n setLock();\n } else {\n setUnlock();\n }\n },\n };\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ 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-1a83ba7b78f9fbad.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/template.js","packages/artplayer/src/i18n/index.js","packages/artplayer/src/i18n/zh-cn.js","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/posterMix.js","packages/artplayer/src/player/autoHeightMix.js","packages/artplayer/src/player/cssVarMix.js","packages/artplayer/src/player/themeMix.js","packages/artplayer/src/player/typeMix.js","packages/artplayer/src/player/stateMix.js","packages/artplayer/src/player/subtitleOffsetMix.js","packages/artplayer/src/player/airplayMix.js","packages/artplayer/src/player/qualityMix.js","packages/artplayer/src/player/thumbnailsMix.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/screenshot.js","packages/artplayer/src/control/airplay.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/moveInit.js","packages/artplayer/src/events/resizeInit.js","packages/artplayer/src/events/gestureInit.js","packages/artplayer/src/events/viewInit.js","packages/artplayer/src/events/documentInit.js","packages/artplayer/src/events/updateInit.js","packages/artplayer/src/events/restoreInit.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-20be5e3eca70ea32.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c89477eca9760866.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8306aa2d43f8f518.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-9e6243eba3e2ee25.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed2c6405abc18237.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-296845b4b0ef3af0.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ce7336f6ee750446.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e2d98041510dcc81.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-0b69a45deda02972.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-59d8a32ff494cf26.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fc0e8ba14b0a205e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8fd0b0f874dbf51e.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b6afaee63da94390.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6e4bd76b89220063.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d269c22a6d246bc3.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-c577d5b2fce8a593.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-766dea468868d543.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d20ee4405f81c2fb.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e61dc575158bf45c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-853939c76577d052.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-ed21bae52505e995.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3cf7eba38b86f798.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-dbc4095e84eeca13.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b9362d1cb1ddd7.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-11f6581ae841b62a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e79e019b9bea702c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-b09787399762439a.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"],"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 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';\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 mergeOption.container = option.container;\n\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.isRotate = false;\n this.isDestroy = false;\n\n this.template = new Template(this);\n this.events = new Events(this);\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\n if (typeof readyCallback === 'function') {\n this.on('ready', () => readyCallback.call(this, this));\n }\n\n if (Artplayer.DEBUG) {\n const log = (msg) => console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n log('Env@' + Artplayer.env);\n log('Build@' + Artplayer.build);\n for (let index = 0; index < config.events.length; index++) {\n this.on('video:' + config.events[index], (event) => log('Event@' + event.type));\n }\n }\n\n instances.push(this);\n }\n\n static get instances() {\n return instances;\n }\n\n static get version() {\n return '\"5.2.4\"';\n }\n\n static get env() {\n return '\"development\"';\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 id: '',\n container: '#artplayer',\n url: '',\n poster: '',\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 gesture: true,\n fastForward: false,\n autoPlayback: false,\n autoOrientation: false,\n airplay: false,\n proxy: undefined,\n layers: [],\n contextmenu: [],\n controls: [],\n settings: [],\n quality: [],\n highlight: [],\n plugins: [],\n thumbnails: {\n url: '',\n number: 60,\n column: 10,\n width: 0,\n height: 0,\n scale: 1,\n },\n subtitle: {\n url: '',\n type: '',\n style: {},\n name: '',\n escape: true,\n encoding: 'utf-8',\n onVttLoad: (vtt) => vtt,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n i18n: {},\n icons: {},\n cssVar: {},\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 get video() {\n return this.template.$video;\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.STYLE = style;\nArtplayer.DEBUG = false;\nArtplayer.CONTEXTMENU = true;\nArtplayer.NOTICE_TIME = 2000;\nArtplayer.SETTING_WIDTH = 250;\nArtplayer.SETTING_ITEM_WIDTH = 200;\nArtplayer.SETTING_ITEM_HEIGHT = 35;\nArtplayer.RESIZE_TIME = 200;\nArtplayer.SCROLL_TIME = 200;\nArtplayer.SCROLL_GAP = 50;\nArtplayer.AUTO_PLAYBACK_MAX = 10;\nArtplayer.AUTO_PLAYBACK_MIN = 5;\nArtplayer.AUTO_PLAYBACK_TIMEOUT = 3000;\nArtplayer.RECONNECT_TIME_MAX = 5;\nArtplayer.RECONNECT_SLEEP_TIME = 1000;\nArtplayer.CONTROL_HIDE_TIME = 3000;\nArtplayer.DBCLICK_TIME = 300;\nArtplayer.DBCLICK_FULLSCREEN = true;\nArtplayer.MOBILE_DBCLICK_PLAY = true;\nArtplayer.MOBILE_CLICK_PLAY = false;\nArtplayer.AUTO_ORIENTATION_TIME = 200;\nArtplayer.INFO_LOOP_TIME = 1000;\nArtplayer.FAST_FORWARD_VALUE = 3;\nArtplayer.FAST_FORWARD_TIME = 1000;\nArtplayer.TOUCH_MOVE_RATIO = 0.5;\nArtplayer.VOLUME_STEP = 0.1;\nArtplayer.SEEK_STEP = 5;\nArtplayer.PLAYBACK_RATE = [0.5, 0.75, 1, 1.25, 1.5, 2];\nArtplayer.ASPECT_RATIO = ['default', '4:3', '16:9'];\nArtplayer.FLIP = ['normal', 'horizontal', 'vertical'];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\nArtplayer.LOG_VERSION = true;\nArtplayer.USE_RAF = false;\n\nif (utils.isBrowser) {\n window['Artplayer'] = Artplayer;\n\n utils.setStyleText('artplayer-style', style);\n\n setTimeout(() => {\n if (Artplayer.LOG_VERSION) {\n console.log(\n `%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`,\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n );\n }\n }, 100);\n}\n","module.exports = \"8df583d394494873\";","!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 item !== target);\n}\n\nexport function inverseClass(target, className) {\n siblings(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\nexport function createElement(tag) {\n return document.createElement(tag);\n}\n\nexport function getIcon(key = '', html = '') {\n const icon = createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, html);\n return icon;\n}\n\nexport function setStyleText(id, style) {\n let $style = document.getElementById(id);\n if (!$style) {\n $style = document.createElement('style');\n $style.id = id;\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n document.head.appendChild($style);\n });\n } else {\n (document.head || document.documentElement).appendChild($style);\n }\n }\n $style.textContent = style;\n}\n\nexport function supportsFlex() {\n const div = document.createElement('div');\n div.style.display = 'flex';\n return div.style.display === 'flex';\n}\n\nexport function getRect(el) {\n return el.getBoundingClientRect();\n}\n\nexport function loadImg(url, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n\n img.onload = function () {\n if (!scale || scale === 1) {\n resolve(img);\n } else {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = img.width * scale;\n canvas.height = img.height * scale;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\n canvas.toBlob((blob) => {\n const blobUrl = URL.createObjectURL(blob);\n const scaledImg = new Image();\n\n scaledImg.onload = function () {\n resolve(scaledImg);\n };\n\n scaledImg.onerror = function () {\n URL.revokeObjectURL(blobUrl);\n reject(new Error(`Image load failed: ${url}`));\n };\n\n scaledImg.src = blobUrl;\n });\n }\n };\n\n img.onerror = function () {\n reject(new Error(`Image load failed: ${url}`));\n };\n\n img.src = url;\n });\n}\n","export const userAgent = globalThis?.CUSTOM_USER_AGENT ?? (typeof navigator !== 'undefined' ? navigator.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;\nexport const isIOS13 = isIOS || (userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1);\nexport const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13;\nexport const isBrowser = typeof window !== 'undefined';\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 return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return (\n 'WEBVTT' +\n '\\n' +\n '\\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}\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)) {\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, duration) {\n let timeout;\n\n return function (...args) {\n const effect = () => {\n timeout = null;\n return func.apply(this, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(effect, duration);\n };\n}\n\nexport function throttle(func, duration) {\n let shouldWait = false;\n\n return function (...args) {\n if (!shouldWait) {\n func.apply(this, args);\n shouldWait = true;\n\n setTimeout(function () {\n shouldWait = false;\n }, duration);\n }\n };\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 capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function secondToTime(second) {\n if (!second) return '00:00';\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\nexport function unescape(str) {\n const map = {\n '&': '&',\n '<': '<',\n '>': '>',\n ''': \"'\",\n '"': '\"',\n };\n const reg = new RegExp(`(${Object.keys(map).join('|')})`, 'g');\n return str.replace(reg, (tag) => map[tag] || tag);\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';\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 onChange: `?${f}`,\n};\n\nexport default {\n id: s,\n container: validElement,\n url: s,\n poster: 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 gesture: b,\n fastForward: b,\n autoPlayback: b,\n autoOrientation: b,\n airplay: b,\n proxy: `?${f}`,\n plugins: [f],\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 width: n,\n height: n,\n scale: n,\n },\n subtitle: {\n url: s,\n name: s,\n type: s,\n style: o,\n escape: b,\n encoding: s,\n onVttLoad: f,\n },\n moreVideoAttr: o,\n i18n: o,\n icons: o,\n cssVar: o,\n customType: o,\n};\n","export default {\n properties: [\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: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause'],\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 { supportsFlex, errorHandle, query, addClass, isMobile, replaceElement } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n const { option, constructor } = 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 errorHandle(supportsFlex(), 'The current browser does not support flex layout');\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.init();\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
${'__APP_VERSION__'}
\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 query(className) {\n return query(className, this.$container);\n }\n\n init() {\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.$track = this.query('track');\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.$contextmenu = this.query('.art-contextmenus');\n\n if (option.proxy) {\n const video = option.proxy.call(this.art, this.art);\n errorHandle(\n video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement,\n `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`,\n );\n replaceElement(video, this.$video);\n video.className = 'art-video';\n this.$video = video;\n }\n\n if (option.backdrop) {\n addClass(this.$player, 'art-backdrop');\n }\n\n if (isMobile) {\n addClass(this.$player, 'art-mobile');\n }\n }\n\n destroy(removeHtml) {\n this.$video.src = '';\n if (removeHtml) {\n this.$container.innerHTML = '';\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n\n this.languages = {\n 'zh-cn': zhCn,\n };\n\n this.language = {};\n\n this.update(art.option.i18n);\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","const zhCn = {\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 AirPlay: '隔空播放',\n 'AirPlay Not Available': '隔空播放不可用',\n};\n\nexport default zhCn;\n\nif (typeof window !== 'undefined') {\n window['artplayer-i18n-zh-cn'] = zhCn;\n}\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 posterMix from './posterMix';\nimport autoHeightMix from './autoHeightMix';\nimport cssVarMix from './cssVarMix';\nimport themeMix from './themeMix';\nimport typeMix from './typeMix';\nimport stateMix from './stateMix';\nimport subtitleOffsetMix from './subtitleOffsetMix';\nimport airplayMix from './airplayMix';\nimport qualityMix from './qualityMix';\nimport thumbnailsMix from './thumbnailsMix';\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 posterMix(art);\n autoHeightMix(art);\n cssVarMix(art);\n themeMix(art);\n typeMix(art);\n stateMix(art);\n subtitleOffsetMix(art);\n airplayMix(art);\n qualityMix(art);\n thumbnailsMix(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.src;\n },\n async set(newUrl) {\n if (newUrl) {\n const oldUrl = art.url;\n const typeName = option.type || getExt(newUrl);\n const typeCallback = option.customType[typeName];\n\n if (typeName && typeCallback) {\n await sleep();\n art.loading.show = true;\n typeCallback.call(art, $video, newUrl, art);\n } else {\n URL.revokeObjectURL(oldUrl);\n $video.src = newUrl;\n }\n\n if (oldUrl !== art.url) {\n art.option.url = newUrl;\n if (art.isReady && oldUrl) {\n art.once('video:canplay', () => {\n art.emit('restart', newUrl);\n });\n }\n }\n } else {\n await sleep();\n art.loading.show = true;\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: async function () {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\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 return result;\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 if (art.duration) {\n notice.show = `${secondToTime(art.currentTime)} / ${secondToTime(art.duration)}`;\n }\n art.emit('seek', art.currentTime);\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 },\n });\n\n def(art, 'muted', {\n get: () => $video.muted,\n set: (muted) => {\n $video.muted = muted;\n art.emit('muted', muted);\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 function switchUrl(url, currentTime) {\n return new Promise((resolve, reject) => {\n if (url === art.url) return;\n const { playing, aspectRatio, playbackRate } = art;\n\n art.pause();\n art.url = url;\n art.notice.show = '';\n\n art.once('video:error', reject);\n\n art.once('video:loadedmetadata', () => {\n art.currentTime = currentTime;\n });\n\n art.once('video:canplay', async () => {\n art.playbackRate = playbackRate;\n art.aspectRatio = aspectRatio;\n\n if (playing) {\n await art.play();\n }\n\n art.notice.show = '';\n\n resolve();\n });\n });\n }\n\n def(art, 'switchQuality', {\n value: (url) => {\n return switchUrl(url, art.currentTime);\n },\n });\n\n def(art, 'switchUrl', {\n value: (url) => {\n return switchUrl(url, 0);\n },\n });\n\n def(art, 'switch', {\n set: art.switchUrl,\n });\n}\n","import { 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 $video.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n } else {\n art.playbackRate = 1;\n }\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function aspectRatioMix(art) {\n const {\n i18n,\n notice,\n template: { $video, $player },\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 if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'margin', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':').map(Number);\n const { clientWidth, clientHeight } = $player;\n const playerRatio = clientWidth / clientHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n\n if (playerRatio > setupRatio) {\n setStyle($video, 'width', `${setupRatio * clientHeight}px`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'margin', '0 auto');\n } else {\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${clientWidth / setupRatio}px`);\n setStyle($video, 'margin', 'auto 0');\n }\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","import { secondToTime, download, def, createElement } from '../utils';\n\nexport default function screenshotMix(art) {\n const {\n notice,\n template: { $video },\n } = art;\n\n const $canvas = 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 (name) => {\n const dataUri = await art.getDataURL();\n const fileName = name || `artplayer_${secondToTime($video.currentTime)}`;\n download(dataUri, `${fileName}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n },\n });\n}\n","import screenfull 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 nativeScreenfull = (art) => {\n screenfull.on('change', () => {\n art.emit('fullscreen', screenfull.isFullscreen);\n\n if (screenfull.isFullscreen) {\n art.state = 'fullscreen';\n addClass($player, 'art-fullscreen');\n } else {\n removeClass($player, 'art-fullscreen');\n }\n\n art.emit('resize');\n });\n\n screenfull.on('error', (event) => {\n art.emit('fullscreenError', event);\n });\n\n def(art, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n async set(value) {\n if (value) {\n await screenfull.request($player);\n } else {\n await screenfull.exit();\n }\n },\n });\n };\n\n const webkitScreenfull = (art) => {\n art.proxy(document, 'webkitfullscreenchange', () => {\n art.emit('fullscreen', art.fullscreen);\n art.emit('resize');\n });\n\n def(art, 'fullscreen', {\n get() {\n return document.fullscreenElement === $video;\n },\n set(value) {\n if (value) {\n art.state = 'fullscreen';\n $video.webkitEnterFullscreen();\n } else {\n $video.webkitExitFullscreen();\n }\n },\n });\n };\n\n art.once('video:loadedmetadata', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art);\n } else if ($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","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\nconst nativeAPI = (() => {\n if (typeof document === 'undefined') {\n return false;\n }\n\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\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror,\n};\n\nlet screenfull = {\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\nObject.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 get: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n },\n});\n\nif (!nativeAPI) {\n screenfull = { isEnabled: false };\n}\n\nexport default screenfull;\n","import { addClass, removeClass, hasClass, def, append, setStyle } from '../utils';\n\nexport default function fullscreenWebMix(art) {\n const {\n constructor,\n template: { $container, $player },\n } = art;\n\n let cssText = '';\n def(art, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append(document.body, $player);\n }\n art.state = 'fullscreenWeb';\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', '100%');\n addClass($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', true);\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) {\n append($container, $player);\n }\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n removeClass($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', false);\n }\n\n art.emit('resize');\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art) {\n const {\n template: { $video },\n 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.state = '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', false);\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.state = 'pip';\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip', false);\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 loadedMix(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: () => {\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0;\n },\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: () => {\n if (typeof $video.playing === 'boolean') return $video.playing;\n return !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2);\n },\n });\n}\n","import { setStyle, def, getRect } from '../utils';\n\nexport default function autoSizeMix(art) {\n const { $container, $player, $video } = art.template;\n\n def(art, 'autoSize', {\n value() {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = getRect($container);\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\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 },\n });\n}\n","import { def, getRect } from '../utils';\n\nexport default function rectMix(art) {\n def(art, 'rect', {\n get: () => {\n return getRect(art.template.$player);\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 { def, capitalize } 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 if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n $player.dataset.flip = flip;\n }\n\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get(capitalize(flip))}`;\n art.emit('flip', flip);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport, createElement, getRect } from '../utils';\n\nexport default function miniMix(art) {\n const {\n icons,\n proxy,\n storage,\n template: { $player, $video },\n } = art;\n\n let isDragging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n removeClass($player, 'art-mini');\n setStyle($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n\n function initState($play, $pause) {\n if (art.playing) {\n setStyle($play, 'display', `none`);\n setStyle($pause, 'display', `flex`);\n } else {\n setStyle($play, 'display', `flex`);\n setStyle($pause, 'display', `none`);\n }\n }\n\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n append($mini, $video);\n return setStyle($mini, 'display', 'flex');\n } else {\n const $mini = createElement('div');\n addClass($mini, 'art-mini-popup');\n append(document.body, $mini);\n art.template.$mini = $mini;\n append($mini, $video);\n\n const $close = append($mini, `
`);\n append($close, icons.close);\n proxy($close, 'click', hideMini);\n\n const $state = append($mini, `
`);\n const $play = append($state, icons.play);\n const $pause = append($state, icons.pause);\n proxy($play, 'click', () => art.play());\n proxy($pause, 'click', () => art.pause());\n initState($play, $pause);\n art.on('video:playing', () => initState($play, $pause));\n art.on('video:pause', () => initState($play, $pause));\n art.on('video:timeupdate', () => initState($play, $pause));\n\n proxy($mini, 'mousedown', (event) => {\n isDragging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n addClass($mini, 'art-mini-dragging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n setStyle($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false;\n removeClass($mini, 'art-mini-dragging');\n const rect = getRect($mini);\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n setStyle($mini, 'left', `${rect.left}px`);\n setStyle($mini, 'top', `${rect.top}px`);\n setStyle($mini, 'transform', null);\n }\n });\n\n return $mini;\n }\n }\n\n function initMini() {\n const { $mini } = art.template;\n const rect = getRect($mini);\n const top = window.innerHeight - rect.height - 50;\n const left = window.innerWidth - rect.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n }\n\n def(art, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n art.state = 'mini';\n addClass($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($mini, 'top', `${top}px`);\n setStyle($mini, 'left', `${left}px`);\n if (!isInViewport($mini)) {\n initMini();\n }\n } else {\n initMini();\n }\n art.emit('mini', true);\n } else {\n hideMini();\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art) {\n const {\n template: { $poster },\n } = art;\n\n def(art, 'poster', {\n get: () => {\n try {\n return $poster.style['backgroundImage'].match(/\"(.*)\"/)[1];\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n return '';\n }\n },\n set(url) {\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import { setStyle, def } from '../utils';\n\nexport default function autoHeightMix(art) {\n const {\n template: { $container, $video },\n } = art;\n\n def(art, 'autoHeight', {\n value() {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n setStyle($container, 'height', height + 'px');\n art.emit('autoHeight', height);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function cssVarMix(art) {\n const { $player } = art.template;\n\n def(art, 'cssVar', {\n value(key, value) {\n if (value) {\n return $player.style.setProperty(key, value);\n } else {\n return getComputedStyle($player).getPropertyValue(key);\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function themeMix(art) {\n def(art, 'theme', {\n get() {\n return art.cssVar('--art-theme');\n },\n set(theme) {\n art.cssVar('--art-theme', theme);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function typeMix(art) {\n def(art, 'type', {\n get() {\n return art.option.type;\n },\n set(type) {\n art.option.type = type;\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function stateMix(art) {\n const states = ['mini', 'pip', 'fullscreen', 'fullscreenWeb'];\n def(art, 'state', {\n get: () => states.find((name) => art[name]) || 'standard',\n set(name) {\n for (let index = 0; index < states.length; index++) {\n const prop = states[index];\n if (prop !== name && art[prop]) {\n art[prop] = false;\n }\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function subtitleOffsetMix(art) {\n const { notice, i18n, template } = art;\n\n def(art, 'subtitleOffset', {\n get() {\n return template.$track?.offset || 0;\n },\n set(value) {\n const { cues } = art.subtitle;\n if (!template.$track || cues.length === 0) return;\n const offset = clamp(value, -10, 10);\n template.$track.offset = offset;\n for (let index = 0; index < cues.length; index++) {\n const cue = cues[index];\n cue.originalStartTime = cue.originalStartTime ?? cue.startTime;\n cue.originalEndTime = cue.originalEndTime ?? cue.endTime;\n cue.startTime = clamp(cue.originalStartTime + offset, 0, art.duration);\n cue.endTime = clamp(cue.originalEndTime + offset, 0, art.duration);\n }\n art.subtitle.update();\n notice.show = `${i18n.get('Subtitle Offset')}: ${value}s`;\n art.emit('subtitleOffset', value);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function airplayMix(art) {\n const {\n i18n,\n notice,\n proxy,\n template: { $video },\n } = art;\n\n let available = true;\n\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) {\n proxy($video, 'webkitplaybacktargetavailabilitychanged', (event) => {\n switch (event.availability) {\n case 'available':\n available = true;\n break;\n case 'not-available':\n available = false;\n break;\n }\n });\n } else {\n available = false;\n }\n\n def(art, 'airplay', {\n value() {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else {\n notice.show = i18n.get('AirPlay Not Available');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function qualityMix(art) {\n def(art, 'quality', {\n set(quality) {\n const { controls, notice, i18n } = art;\n const qualityDefault = quality.find((item) => item.default) || quality[0];\n controls.update({\n name: 'quality',\n position: 'right',\n index: 10,\n style: {\n marginRight: '10px',\n },\n html: qualityDefault?.html || '',\n selector: quality,\n async onSelect(item) {\n await art.switchQuality(item.url);\n notice.show = `${i18n.get('Switch Video')}: ${item.html}`;\n return item.html;\n },\n });\n },\n });\n}\n","import { def, setStyle, isMobile, loadImg } from '../utils';\n\nexport default function thumbnailsMix(art) {\n const {\n events,\n option,\n template: { $progress, $video },\n } = art;\n\n let timer = null;\n let image = null;\n let loading = false;\n let isLoad = false;\n let isHover = false;\n\n function reset() {\n clearTimeout(timer);\n timer = null;\n image = null;\n loading = false;\n isLoad = false;\n }\n\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails;\n if (!$thumbnails) return;\n\n const { number, column, width, height, scale } = option.thumbnails;\n const width2 = width * scale || image.naturalWidth / column;\n const height2 = height * scale || width2 / ($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($thumbnails, 'backgroundImage', `url(${image.src})`);\n setStyle($thumbnails, 'height', `${height2}px`);\n setStyle($thumbnails, 'width', `${width2}px`);\n setStyle($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) {\n setStyle($thumbnails, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width2 / 2) {\n setStyle($thumbnails, 'left', `${$progress.clientWidth - width2}px`);\n } else {\n setStyle($thumbnails, 'left', `${posWidth - width2 / 2}px`);\n }\n }\n\n events.hover(\n $progress,\n () => {\n isHover = true;\n },\n () => {\n isHover = false;\n },\n );\n\n art.on('setBar', async (type, percentage, event) => {\n const $thumbnails = art.controls?.thumbnails;\n const { url, scale } = option.thumbnails;\n if (!$thumbnails || !url) return;\n\n const isMobileDragging = type === 'played' && event && isMobile;\n\n if (type === 'hover' || isMobileDragging) {\n if (!loading) {\n loading = true;\n image = await loadImg(url, scale);\n isLoad = true;\n }\n\n if (!isLoad || !isHover) return;\n\n const width = $progress.clientWidth * percentage;\n setStyle($thumbnails, 'display', 'flex');\n\n if (width > 0 && width < $progress.clientWidth) {\n showThumbnails(width);\n } else {\n if (!isMobile) {\n setStyle($thumbnails, 'display', 'none');\n }\n }\n\n if (isMobileDragging) {\n clearTimeout(timer);\n timer = setTimeout(() => {\n setStyle($thumbnails, 'display', 'none');\n }, 500);\n }\n }\n });\n\n def(art, 'thumbnails', {\n get() {\n return art.option.thumbnails;\n },\n set(thumbnails) {\n if (thumbnails.url && !art.option.isLive) {\n art.option.thumbnails = thumbnails;\n reset();\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function optionInit(art) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n for (const key in option.moreVideoAttr) {\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 option.cssVar['--art-theme'] = option.theme;\n }\n\n for (const key in option.cssVar) {\n art.cssVar(key, option.cssVar[key]);\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 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 (error) => {\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', 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 }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n art.emit('resize');\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 if (art.playing) {\n art.loading.show = false;\n }\n });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n art.mask.show = true;\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 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 screenshot from './screenshot';\nimport airplay from './airplay';\nimport {\n def,\n sleep,\n append,\n addClass,\n isMobile,\n removeClass,\n errorHandle,\n inverseClass,\n createElement,\n includeFromEvent,\n} from '../utils';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.isHover = false;\n this.name = 'control';\n this.timer = Date.now();\n\n const { constructor } = art;\n const { $player, $bottom } = this.art.template;\n\n art.on('mousemove', () => {\n if (!isMobile) {\n this.show = true;\n }\n });\n\n art.on('click', () => {\n if (isMobile) {\n this.toggle();\n } else {\n this.show = true;\n }\n });\n\n art.on('document:mousemove', (event) => {\n this.isHover = includeFromEvent(event, $bottom);\n });\n\n art.on('video:timeupdate', () => {\n if (\n !art.setting.show &&\n !this.isHover &&\n !art.isInput &&\n art.playing &&\n this.show &&\n Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME\n ) {\n this.show = false;\n }\n });\n\n art.on('control', (state) => {\n if (state) {\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.timer = Date.now();\n } else {\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 if (!option.isLive) {\n this.add(\n progress({\n name: 'progress',\n position: 'top',\n index: 10,\n }),\n );\n }\n\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20,\n });\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n position: 'left',\n index: 20,\n }),\n );\n\n if (!option.isLive) {\n this.add(\n time({\n name: 'time',\n position: 'left',\n index: 30,\n }),\n );\n }\n\n if (option.quality.length) {\n sleep().then(() => {\n this.art.quality = option.quality;\n });\n }\n\n if (option.screenshot && !isMobile) {\n this.add(\n screenshot({\n name: 'screenshot',\n position: 'right',\n index: 20,\n }),\n );\n }\n\n if (option.setting) {\n this.add(\n setting({\n name: 'setting',\n position: 'right',\n index: 30,\n }),\n );\n }\n\n if (option.pip) {\n this.add(\n pip({\n name: 'pip',\n position: 'right',\n index: 40,\n }),\n );\n }\n\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) {\n this.add(\n airplay({\n name: 'airplay',\n position: 'right',\n index: 50,\n }),\n );\n }\n\n if (option.fullscreenWeb) {\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60,\n }),\n );\n }\n\n if (option.fullscreen) {\n this.add(\n fullscreen({\n name: 'fullscreen',\n position: 'right',\n index: 70,\n }),\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 check(target) {\n target.$control_value.innerHTML = target.html;\n for (let index = 0; index < target.$control_option.length; index++) {\n const item = target.$control_option[index];\n item.default = item === target;\n if (item.default) {\n inverseClass(item.$control_item, 'art-current');\n }\n }\n }\n\n selector(option, $ref, events) {\n const { proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const $list = createElement('div');\n addClass($list, 'art-selector-list');\n append($ref, $list);\n\n for (let index = 0; index < option.selector.length; index++) {\n const item = option.selector[index];\n const $item = createElement('div');\n addClass($item, 'art-selector-item');\n if (item.default) addClass($item, 'art-current');\n $item.dataset.index = index;\n $item.dataset.value = item.value;\n $item.innerHTML = item.html;\n append($list, $item);\n\n def(item, '$control_option', {\n get: () => option.selector,\n });\n\n def(item, '$control_item', {\n get: () => $item,\n });\n\n def(item, '$control_value', {\n get: () => $value,\n });\n }\n\n const event = proxy($list, 'click', async (event) => {\n const path = event.composedPath() || [];\n const item = option.selector.find(\n (item) => item.$control_item === path.find(($item) => item.$control_item === $item),\n );\n this.check(item);\n if (option.onSelect) {\n $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event);\n }\n });\n\n events.push(event);\n }\n}\n","import { remove, append, tooltip, hasClass, addClass, setStyles, removeClass, createElement } from './dom';\nimport { errorHandle } from './error';\nimport validator from 'option-validator';\nimport { ComponentOption } from '../scheme';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.cache = new Map();\n this.add = this.add.bind(this);\n this.remove = this.remove.bind(this);\n this.update = this.update.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 toggle() {\n this.show = !this.show;\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 if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n const item = this.cache.get(name);\n errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = 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 const events = [];\n if (option.click) {\n const destroyEvent = this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n events.push(destroyEvent);\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref, events);\n }\n\n this[name] = $ref;\n this.cache.set(name, { $ref, events, option });\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n return $ref;\n }\n\n remove(name) {\n const item = this.cache.get(name);\n errorHandle(item, `Can't find [${name}] from the [${this.name}]`);\n\n if (item.option.beforeUnmount) {\n item.option.beforeUnmount.call(this.art, item.$ref);\n }\n\n for (let index = 0; index < item.events.length; index++) {\n this.art.events.remove(item.events[index]);\n }\n\n this.cache.delete(name);\n delete this[name];\n remove(item.$ref);\n }\n\n update(option) {\n const item = this.cache.get(option.name);\n if (item) {\n option = Object.assign(item.option, option);\n this.remove(option.name);\n }\n return this.add(option);\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 { proxy, icons, i18n } = 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', (state) => {\n if (state) {\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 { proxy, icons, i18n } = 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 { proxy, icons, i18n } = 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 { proxy, icons, i18n } = 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, secondToTime, includeFromEvent, isMobile, getRect } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = getRect($progress);\n const eventLeft = isMobile ? event.touches[0].clientX : event.clientX;\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 function setCurrentTime(art, event) {\n if (art.isRotate) {\n const percentage = event.touches[0].clientY / art.height;\n const second = percentage * art.duration;\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n } else {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n }\n}\n\nexport default function progress(options) {\n return (art) => {\n const { icons, option, proxy } = art;\n\n return {\n ...options,\n html: `\n
\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let tipTimer = null;\n let isDragging = false;\n\n const $hover = query('.art-progress-hover', $control);\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 if (icons.indicator) {\n append($indicator, icons.indicator);\n } else {\n setStyle($indicator, 'backgroundColor', 'var(--art-theme)');\n }\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerText = 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, touch) {\n const { width, time } = touch || getPosFromEvent(art, event);\n $tip.innerText = 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 updateHighlight() {\n $highlight.innerText = '';\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 const html = ``;\n append($highlight, html);\n }\n }\n\n function setBar(type, percentage, event) {\n const isMobileDragging = type === 'played' && event && isMobile;\n\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'hover') {\n setStyle($hover, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle($indicator, 'left', `${percentage * 100}%`);\n }\n\n if (isMobileDragging) {\n setStyle($tip, 'display', 'flex');\n const width = $control.clientWidth * percentage;\n const time = secondToTime(percentage * art.duration);\n showTime(event, { width, time });\n clearTimeout(tipTimer);\n tipTimer = setTimeout(() => {\n setStyle($tip, 'display', 'none');\n }, 500);\n }\n }\n\n art.on('setBar', setBar);\n art.on('video:loadedmetadata', updateHighlight);\n\n if (art.constructor.USE_RAF) {\n art.on('raf', () => {\n art.emit('setBar', 'played', art.played);\n art.emit('setBar', 'loaded', art.loaded);\n });\n } else {\n art.on('video:timeupdate', () => {\n art.emit('setBar', 'played', art.played);\n });\n\n art.on('video:progress', () => {\n art.emit('setBar', 'loaded', art.loaded);\n });\n\n art.on('video:ended', () => {\n art.emit('setBar', 'played', 1);\n });\n }\n\n art.emit('setBar', 'loaded', art.loaded || 0);\n\n if (!isMobile) {\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n setCurrentTime(art, event);\n }\n });\n\n proxy($control, 'mousemove', (event) => {\n const { percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'hover', percentage, event);\n setStyle($tip, 'display', 'flex');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseleave', (event) => {\n setStyle($tip, 'display', 'none');\n art.emit('setBar', 'hover', 0, event);\n });\n\n proxy($control, 'mousedown', (event) => {\n isDragging = event.button === 0;\n });\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n const { second, percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'played', percentage, event);\n art.seek = second;\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false;\n }\n });\n }\n },\n };\n };\n}\n","import { secondToTime, isMobile } from '../utils';\n\nexport default function time(option) {\n return (art) => ({\n ...option,\n style: isMobile\n ? {\n fontSize: '12px',\n padding: '0 5px',\n }\n : {\n cursor: 'auto',\n padding: '0 10px',\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, setStyle, isMobile, getRect } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { proxy, icons } = art;\n\n const $volume = append($control, icons.volume);\n const $close = append($control, icons.volumeClose);\n const $panel = append($control, '
');\n const $inner = append($panel, '
');\n const $value = append($inner, `
`);\n const $slider = append($inner, `
`);\n const $handle = append($slider, `
`);\n const $loaded = append($handle, `
`);\n const $indicator = append($slider, `
`);\n\n function getVolumeFromEvent(event) {\n const { top, height } = getRect($slider);\n return 1 - (event.clientY - top) / height;\n }\n\n function update() {\n if (art.muted || art.volume === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($close, 'display', 'flex');\n setStyle($indicator, 'top', '100%');\n setStyle($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n setStyle($volume, 'display', 'flex');\n setStyle($close, 'display', 'none');\n setStyle($indicator, 'top', `${100 - percentage}%`);\n setStyle($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n\n update();\n art.on('video:volumechange', update);\n\n proxy($volume, 'click', () => {\n art.muted = true;\n });\n\n proxy($close, 'click', () => {\n art.muted = false;\n });\n\n if (isMobile) {\n setStyle($panel, 'display', 'none');\n } else {\n let isDragging = false;\n\n proxy($slider, 'mousedown', (event) => {\n isDragging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n\n art.on('document:mousemove', (event) => {\n if (isDragging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n\n art.on('document:mouseup', () => {\n if (isDragging) {\n isDragging = false;\n }\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 { proxy, icons, i18n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n art.setting.toggle();\n art.setting.resize();\n });\n\n art.on('setting', (value) => {\n tooltip($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\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 { proxy, icons } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n art.screenshot();\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function airplay(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control) => {\n const { proxy, icons } = art;\n append($control, icons.airplay);\n proxy($control, 'click', () => art.airplay());\n },\n });\n}\n","import { setStyles, includeFromEvent, isMobile, getRect } 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 proxy,\n template: { $player, $contextmenu },\n } = this.art;\n\n if (option.playbackRate) {\n this.add(\n playbackRate({\n name: 'playbackRate',\n index: 10,\n }),\n );\n }\n\n if (option.aspectRatio) {\n this.add(\n aspectRatio({\n name: 'aspectRatio',\n index: 20,\n }),\n );\n }\n\n if (option.flip) {\n this.add(\n flip({\n name: 'flip',\n index: 30,\n }),\n );\n }\n\n this.add(\n info({\n name: 'info',\n index: 40,\n }),\n );\n\n this.add(\n version({\n name: 'version',\n index: 50,\n }),\n );\n\n this.add(\n close({\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 if (!this.art.constructor.CONTEXTMENU) return;\n event.preventDefault();\n\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 } = getRect($player);\n const { height: mHeight, width: mWidth } = getRect($contextmenu);\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, query, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const {\n i18n,\n constructor: { PLAYBACK_RATE },\n } = art;\n\n const html = PLAYBACK_RATE.map(\n (item) => `${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Play Speed')}: ${html}`,\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 const $default = query('[data-value=\"1\"]', $panel);\n if ($default) inverseClass($default, 'art-current');\n art.on('video:ratechange', () => {\n const $current = queryAll('span', $panel).find(\n (item) => Number(item.dataset.value) === art.playbackRate,\n );\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, query, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const {\n i18n,\n constructor: { ASPECT_RATIO },\n } = art;\n\n const html = ASPECT_RATIO.map(\n (item) => `${item === 'default' ? i18n.get('Default') : item}`,\n ).join('');\n\n return {\n ...option,\n html: `${i18n.get('Aspect Ratio')}: ${html}`,\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 const $default = query('[data-value=\"default\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\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, query, queryAll, capitalize } from '../utils';\n\nexport default function flip(option) {\n return (art) => {\n const {\n i18n,\n constructor: { FLIP },\n } = art;\n\n const html = FLIP.map((item) => `${i18n.get(capitalize(item))}`).join('');\n\n return {\n ...option,\n html: `${i18n.get('Video Flip')}: ${html}`,\n click: (contextmenu, event) => {\n const { value } = event.target.dataset;\n if (value) {\n art.flip = value.toLowerCase();\n contextmenu.show = false;\n }\n },\n mounted: ($panel) => {\n const $default = query('[data-value=\"normal\"]', $panel);\n if ($default) {\n inverseClass($default, 'art-current');\n }\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 ${'__APP_VERSION__'}`,\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 proxy,\n constructor,\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 this.art.on('destroy', () => clearTimeout(timer));\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 {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n escape,\n remove,\n append,\n createElement,\n} 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 this.name = 'subtitle';\n this.option = null;\n this.destroyEvent = () => null;\n this.init(art.option.subtitle);\n\n let lastState = false;\n art.on('video:timeupdate', () => {\n if (!this.url) return;\n const state = this.art.template.$video.webkitDisplayingFullscreen;\n if (typeof state !== 'boolean') return;\n if (state !== lastState) {\n lastState = state;\n this.createTrack(state ? 'subtitles' : 'metadata', this.url);\n }\n });\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 activeCues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.activeCues);\n }\n\n get cues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.cues);\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 {\n option: { subtitle },\n template: { $subtitle },\n } = this.art;\n\n $subtitle.innerHTML = '';\n if (!this.activeCues.length) return;\n\n this.art.emit('subtitleBeforeUpdate', this.activeCues);\n $subtitle.innerHTML = this.activeCues\n .map((cue, index) =>\n cue.text\n .split(/\\r?\\n/)\n .filter((line) => line.trim())\n .map(\n (line) =>\n `
\n ${subtitle.escape ? escape(line) : line}\n
`,\n )\n .join(''),\n )\n .join('');\n this.art.emit('subtitleAfterUpdate', this.activeCues);\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 createTrack(kind, url) {\n const { template, proxy, option } = this.art;\n const { $video, $track } = template;\n\n const $newTrack = createElement('track');\n $newTrack.default = true;\n $newTrack.kind = kind;\n $newTrack.src = url;\n $newTrack.label = option.subtitle.name || 'Artplayer';\n $newTrack.track.mode = 'hidden';\n $newTrack.onload = () => {\n this.art.emit('subtitleLoad', this.cues, this.option);\n };\n\n this.art.events.remove(this.destroyEvent);\n $track.onload = null;\n remove($track);\n append($video, $newTrack);\n template.$track = $newTrack;\n this.destroyEvent = proxy(this.textTrack, 'cuechange', () => this.update());\n }\n\n async init(subtitleOption) {\n const {\n notice,\n template: { $subtitle },\n } = this.art;\n\n if (!this.textTrack) return null;\n validator(subtitleOption, scheme.subtitle);\n if (!subtitleOption.url) return;\n this.option = subtitleOption;\n this.style(subtitleOption.style);\n\n return fetch(subtitleOption.url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n switch (subtitleOption.type || getExt(subtitleOption.url)) {\n case 'srt': {\n const vtt = srtToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'ass': {\n const vtt = assToVtt(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return vttToBlob(vttNew);\n }\n case 'vtt': {\n const vttNew = subtitleOption.onVttLoad(text);\n return vttToBlob(vttNew);\n }\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.createTrack('metadata', subUrl);\n return subUrl;\n })\n .catch((err) => {\n $subtitle.innerHTML = '';\n notice.show = err;\n throw err;\n });\n }\n}\n","import clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport moveInit from './moveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\nimport documentInit from './documentInit';\nimport updateInit from './updateInit';\nimport restoreInit from './restoreInit';\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\n clickInit(art, this);\n hoverInit(art, this);\n moveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n documentInit(art, this);\n updateInit(art, this);\n restoreInit(art, this);\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 remove(destroyEvent) {\n const index = this.destroyEvents.indexOf(destroyEvent);\n if (index > -1) {\n destroyEvent();\n this.destroyEvents.splice(index, 1);\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', event);\n } else {\n art.isInput = false;\n art.isFocus = false;\n art.emit('blur', event);\n }\n });\n\n let clickTimes = [];\n events.proxy($video, 'click', (event) => {\n const now = Date.now();\n clickTimes.push(now);\n const { MOBILE_CLICK_PLAY, DBCLICK_TIME, MOBILE_DBCLICK_PLAY, DBCLICK_FULLSCREEN } = constructor;\n\n const clicks = clickTimes.filter((t) => now - t <= DBCLICK_TIME);\n switch (clicks.length) {\n case 1:\n art.emit('click', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) {\n art.toggle();\n }\n } else {\n art.toggle();\n }\n clickTimes = clicks;\n break;\n case 2:\n art.emit('dblclick', event);\n\n if (isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) {\n art.toggle();\n }\n } else {\n if (DBCLICK_FULLSCREEN) {\n art.fullscreen = !art.fullscreen;\n }\n }\n clickTimes = [];\n break;\n default:\n clickTimes = [];\n }\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 (event) => {\n addClass($player, 'art-hover');\n art.emit('hover', true, event);\n },\n (event) => {\n removeClass($player, 'art-hover');\n art.emit('hover', false, event);\n },\n );\n}\n","export default function moveInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { debounce } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, constructor } = art;\n\n art.on('resize', () => {\n const { aspectRatio, notice } = art;\n if (art.state === 'standard' && option.autoSize) {\n art.autoSize();\n }\n art.aspectRatio = aspectRatio;\n notice.show = '';\n });\n\n const resizeFn = debounce(() => art.emit('resize'), constructor.RESIZE_TIME);\n events.proxy(window, ['orientationchange', 'resize'], () => resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) {\n events.proxy(screen.orientation, 'change', () => resizeFn());\n }\n}\n","import { clamp, secondToTime, isMobile } from '../utils';\nimport { setCurrentTime } from '../control/progress';\n\nfunction GetSlideAngle(dx, dy) {\n return (Math.atan2(dy, dx) * 180) / Math.PI;\n}\n\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {\n return result;\n }\n\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) {\n result = 4;\n } else if (angle >= 45 && angle < 135) {\n result = 1;\n } else if (angle >= -135 && angle < -45) {\n result = 2;\n } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {\n result = 3;\n }\n\n return result;\n}\n\nexport default function gestureInit(art, events) {\n if (isMobile && !art.option.isLive) {\n const { $video, $progress } = art.template;\n\n let touchTarget = null;\n let isDragging = 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 if (touchTarget === $progress) {\n setCurrentTime(art, event);\n }\n\n isDragging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\n }\n };\n\n const onTouchMove = (event) => {\n if (event.touches.length === 1 && isDragging && art.duration) {\n const { pageX, pageY } = event.touches[0];\n const direction = GetSlideDirection(startX, startY, pageX, pageY);\n const isHorizontal = [3, 4].includes(direction);\n const isVertical = [1, 2].includes(direction);\n const isLegal = (isHorizontal && !art.isRotate) || (isVertical && art.isRotate);\n if (isLegal) {\n const ratioX = clamp((pageX - startX) / art.width, -1, 1);\n const ratioY = clamp((pageY - startY) / art.height, -1, 1);\n const ratio = art.isRotate ? ratioY : ratioX;\n const TOUCH_MOVE_RATIO = touchTarget === $video ? art.constructor.TOUCH_MOVE_RATIO : 1;\n const currentTime = clamp(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', clamp(currentTime / art.duration, 0, 1), event);\n art.notice.show = `${secondToTime(currentTime)} / ${secondToTime(art.duration)}`;\n }\n }\n };\n\n const onTouchEnd = () => {\n if (isDragging) {\n startX = 0;\n startY = 0;\n startTime = 0;\n isDragging = false;\n touchTarget = null;\n }\n };\n\n if (art.option.gesture) {\n events.proxy($video, 'touchstart', (event) => {\n touchTarget = $video;\n onTouchStart(event);\n });\n events.proxy($video, 'touchmove', onTouchMove);\n }\n\n events.proxy($progress, 'touchstart', (event) => {\n touchTarget = $progress;\n onTouchStart(event);\n });\n\n events.proxy($progress, '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', () => scrollFn());\n\n art.on('view', (state) => {\n if (option.autoMini) {\n art.mini = !state;\n }\n });\n}\n","export default function documentInit(art, events) {\n events.proxy(document, 'mousemove', (event) => {\n art.emit('document:mousemove', event);\n });\n\n events.proxy(document, 'mouseup', (event) => {\n art.emit('document:mouseup', event);\n });\n}\n","export default function updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n\n (function update() {\n if (art.playing) {\n art.emit('raf');\n }\n\n if (!art.isDestroy) {\n timer = requestAnimationFrame(update);\n }\n })();\n\n art.on('destroy', () => {\n cancelAnimationFrame(timer);\n });\n }\n}\n","export default function restoreInit(art, events) {\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, constructor } = this.art;\n\n this.add('Escape', () => {\n if (this.art.fullscreenWeb) {\n this.art.fullscreenWeb = false;\n }\n });\n\n this.add('Space', () => {\n this.art.toggle();\n });\n\n this.add('ArrowLeft', () => {\n this.art.backward = constructor.SEEK_STEP;\n });\n\n this.add('ArrowUp', () => {\n this.art.volume += constructor.VOLUME_STEP;\n });\n\n this.add('ArrowRight', () => {\n this.art.forward = constructor.SEEK_STEP;\n });\n\n this.add('ArrowDown', () => {\n this.art.volume -= constructor.VOLUME_STEP;\n });\n\n proxy(document, 'keydown', (event) => {\n if (this.art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (\n tag !== 'INPUT' &&\n tag !== 'TEXTAREA' &&\n editable !== '' &&\n editable !== 'true' &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey\n ) {\n const events = this.keys[event.code];\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 this.art.emit('keydown', event);\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 { def, getIcon } 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';\nimport airplay from 'bundle-text:./airplay.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 airplay,\n ...art.option.icons,\n };\n\n for (const key in icons) {\n def(this, key, {\n get: () => getIcon(key, icons[key]),\n });\n }\n }\n}\n","module.exports = \"75a057509707bc87\";","module.exports = \"820f454e33d34914\";","module.exports = \"6e9bb7fa28118e05\";","module.exports = \"4838679ac81bbe80\";","module.exports = \"b491c01323e26afb\";","module.exports = \"95ec2167c54ce911\";","module.exports = \"1499cf92f6f33dd9\";","module.exports = \"e4ecf862ed860d42\";","module.exports = \"a391299de3225f80\";","module.exports = \"ea3f9694841ef258\";","module.exports = \"b67cac358913d514\";","module.exports = \"46895f0cf70aca10\";","module.exports = \"65c783bf793215eb\";","module.exports = \"3fa24efddec6bcbd\";","module.exports = \"0d8559370ca5b4ef\";","module.exports = \"358c932d8356421e\";","module.exports = \"7cf671d989be8873\";","module.exports = \"a76d6978226feea3\";","module.exports = \"fe487e5ddec5d380\";","module.exports = \"3f492d6cd9c76858\";","module.exports = \"46c741c838cae528\";","module.exports = \"ca0154888ac784ab\";","module.exports = \"03b02c181a6fb9ce\";","module.exports = \"9b95a2cd859b7b0b\";","module.exports = \"d3353905d0ec07f0\";","module.exports = \"ece62effeeaea8b9\";","module.exports = \"9e11ac5830b69238\";","import flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\nimport subtitleOffset from './subtitleOffset';\nimport Component from '../utils/component';\nimport {\n def,\n has,\n remove,\n append,\n getRect,\n addClass,\n setStyle,\n isMobile,\n errorHandle,\n inverseClass,\n createElement,\n replaceElement,\n includeFromEvent,\n} from '../utils';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n const {\n option,\n controls,\n template: { $setting },\n } = art;\n\n this.name = 'setting';\n this.$parent = $setting;\n\n this.id = 0;\n this.active = null;\n this.cache = new Map();\n this.option = [...this.builtin, ...option.settings];\n\n if (option.setting) {\n this.format();\n this.render();\n\n art.on('blur', () => {\n if (this.show) {\n this.show = false;\n this.render();\n }\n });\n\n art.on('focus', (event) => {\n const isControl = includeFromEvent(event, controls.setting);\n const isSetting = includeFromEvent(event, this.$parent);\n if (this.show && !isControl && !isSetting) {\n this.show = false;\n this.render();\n }\n });\n\n art.on('resize', () => this.resize());\n }\n }\n\n get builtin() {\n const result = [];\n const { option } = this.art;\n\n if (option.playbackRate) {\n result.push(playbackRate(this.art));\n }\n\n if (option.aspectRatio) {\n result.push(aspectRatio(this.art));\n }\n\n if (option.flip) {\n result.push(flip(this.art));\n }\n\n if (option.subtitleOffset) {\n result.push(subtitleOffset(this.art));\n }\n\n return result;\n }\n\n traverse(callback, option = this.option) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n callback(item);\n if (item.selector?.length) {\n this.traverse.call(this, callback, item.selector);\n }\n }\n }\n\n check(target) {\n target.$parent.tooltip = target.html;\n this.traverse((item) => {\n item.default = item === target;\n if (item.default && item.$item) {\n inverseClass(item.$item, 'art-current');\n }\n }, target.$option);\n this.render(target.$parents);\n }\n\n format(option = this.option, parent, parents, names = []) {\n for (let index = 0; index < option.length; index++) {\n const item = option[index];\n\n if (item?.name) {\n errorHandle(!names.includes(item.name), `The [${item.name}] is already exist in [setting]`);\n names.push(item.name);\n } else {\n item.name = `setting-${this.id++}`;\n }\n\n if (!item.$formatted) {\n def(item, '$parent', {\n get: () => parent,\n });\n\n def(item, '$parents', {\n get: () => parents,\n });\n\n def(item, '$option', {\n get: () => option,\n });\n\n const $events = [];\n def(item, '$events', {\n get: () => $events,\n });\n\n def(item, '$formatted', {\n get: () => true,\n });\n }\n\n this.format(item.selector || [], item, option, names);\n }\n\n this.option = option;\n }\n\n find(name = '') {\n let result = null;\n this.traverse((item) => {\n if (item.name === name) {\n result = item;\n }\n });\n return result;\n }\n\n resize() {\n const {\n controls,\n constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT },\n template: { $player, $setting },\n } = this.art;\n\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = getRect(controls.setting);\n const { left: playerLeft, width: playerWidth } = getRect($player);\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n\n const settingHeight =\n this.active === this.option\n ? this.active.length * SETTING_ITEM_HEIGHT\n : (this.active.length + 1) * SETTING_ITEM_HEIGHT;\n\n setStyle($setting, 'height', `${settingHeight}px`);\n setStyle($setting, 'width', `${settingWidth}px`);\n\n if (this.art.isRotate || isMobile) return;\n\n if (settingLeft + settingWidth > playerWidth) {\n setStyle($setting, 'left', null);\n setStyle($setting, 'right', null);\n } else {\n setStyle($setting, 'left', `${settingLeft}px`);\n setStyle($setting, 'right', 'auto');\n }\n }\n }\n\n inactivate(item) {\n for (let index = 0; index < item.$events.length; index++) {\n this.art.events.remove(item.$events[index]);\n }\n item.$events.length = 0;\n }\n\n remove(name) {\n const item = this.find(name);\n errorHandle(item, `Can't find [${name}] in the [setting]`);\n const index = item.$option.indexOf(item);\n item.$option.splice(index, 1);\n this.inactivate(item);\n if (item.$item) remove(item.$item);\n this.render();\n }\n\n update(target) {\n const item = this.find(target.name);\n\n if (item) {\n this.inactivate(item);\n Object.assign(item, target);\n this.format();\n this.createItem(item, true);\n this.render();\n return item;\n } else {\n return this.add(target);\n }\n }\n\n add(item, option = this.option) {\n option.push(item);\n this.format();\n this.createItem(item);\n this.render();\n return item;\n }\n\n createHeader(item) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n\n const {\n proxy,\n icons: { arrowLeft },\n constructor: { SETTING_ITEM_HEIGHT },\n } = this.art;\n\n const $item = createElement('div');\n setStyle($item, 'height', `${SETTING_ITEM_HEIGHT}px`);\n addClass($item, 'art-setting-item');\n addClass($item, 'art-setting-item-back');\n const $left = append($item, '
');\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n append($icon, arrowLeft);\n append($left, $icon);\n append($left, item.$parent.html);\n const event = proxy($item, 'click', () => this.render(item.$parents));\n item.$parent.$events.push(event);\n append($panel, $item);\n }\n\n createItem(item, isUpdate = false) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n const oldItem = item.$item;\n\n let type = 'selector';\n\n if (has(item, 'switch')) {\n type = 'switch';\n }\n\n if (has(item, 'range')) {\n type = 'range';\n }\n\n if (has(item, 'onClick')) {\n type = 'button';\n }\n\n const { icons, proxy, constructor } = this.art;\n\n const $item = createElement('div');\n addClass($item, 'art-setting-item');\n setStyle($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`);\n\n $item.dataset.name = item.name || '';\n $item.dataset.value = item.value || '';\n\n const $left = append($item, '
');\n const $right = append($item, '
');\n\n const $icon = createElement('div');\n addClass($icon, 'art-setting-item-left-icon');\n\n switch (type) {\n case 'button':\n case 'switch':\n case 'range':\n append($icon, item.icon || icons.config);\n break;\n case 'selector':\n if (item.selector?.length) {\n append($icon, item.icon || icons.config);\n } else {\n append($icon, icons.check);\n }\n break;\n default:\n break;\n }\n\n append($left, $icon);\n\n def(item, '$icon', {\n configurable: true,\n get: () => $icon,\n });\n\n def(item, 'icon', {\n configurable: true,\n get() {\n return $icon.innerHTML;\n },\n set(value) {\n $icon.innerHTML = '';\n append($icon, value);\n },\n });\n\n const $html = createElement('div');\n addClass($html, 'art-setting-item-left-text');\n append($html, item.html || '');\n append($left, $html);\n\n def(item, '$html', {\n configurable: true,\n get: () => $html,\n });\n\n def(item, 'html', {\n configurable: true,\n get() {\n return $html.innerHTML;\n },\n set(value) {\n $html.innerHTML = '';\n append($html, value);\n },\n });\n\n const $tooltip = createElement('div');\n addClass($tooltip, 'art-setting-item-right-tooltip');\n append($tooltip, item.tooltip || '');\n append($right, $tooltip);\n\n def(item, '$tooltip', {\n configurable: true,\n get: () => $tooltip,\n });\n\n def(item, 'tooltip', {\n configurable: true,\n get() {\n return $tooltip.innerHTML;\n },\n set(value) {\n $tooltip.innerHTML = '';\n append($tooltip, value);\n },\n });\n\n switch (type) {\n case 'switch': {\n const $switch = createElement('div');\n addClass($switch, 'art-setting-item-right-icon');\n const $switchOn = append($switch, icons.switchOn);\n const $switchOff = append($switch, icons.switchOff);\n setStyle(item.switch ? $switchOff : $switchOn, 'display', 'none');\n append($right, $switch);\n\n def(item, '$switch', {\n configurable: true,\n get: () => $switch,\n });\n\n let $switchValue = item.switch;\n def(item, 'switch', {\n configurable: true,\n get: () => $switchValue,\n set(value) {\n $switchValue = 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 = createElement('div');\n addClass($state, 'art-setting-item-right-icon');\n const $range = append($state, '');\n $range.value = item.range[0];\n $range.min = item.range[1];\n $range.max = item.range[2];\n $range.step = item.range[3];\n addClass($range, 'art-setting-range');\n append($right, $state);\n\n def(item, '$range', {\n configurable: true,\n get: () => $range,\n });\n\n let $rangeValue = [...item.range];\n def(item, 'range', {\n configurable: true,\n get: () => $rangeValue,\n set(value) {\n $rangeValue = [...value];\n $range.value = value[0];\n $range.min = value[1];\n $range.max = value[2];\n $range.step = value[3];\n },\n });\n }\n break;\n case 'selector':\n if (item.selector?.length) {\n const $state = 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 item.$events.push(event);\n }\n break;\n }\n case 'range': {\n if (item.$range) {\n if (item.onRange) {\n const event = proxy(item.$range, 'change', async (event) => {\n item.range[0] = item.$range.valueAsNumber;\n item.tooltip = await item.onRange.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n\n if (item.onChange) {\n const event = proxy(item.$range, 'input', async (event) => {\n item.range[0] = item.$range.valueAsNumber;\n item.tooltip = await item.onChange.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n }\n break;\n }\n case 'selector':\n {\n const event = proxy($item, 'click', async (event) => {\n if (item.selector?.length) {\n this.render(item.selector);\n } else {\n this.check(item);\n if (item.$parent.onSelect) {\n item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event);\n }\n }\n });\n\n item.$events.push(event);\n\n if (item.default) {\n addClass($item, 'art-current');\n }\n }\n break;\n case 'button':\n {\n if (item.onClick) {\n const event = proxy($item, 'click', async (event) => {\n item.tooltip = await item.onClick.call(this.art, item, $item, event);\n });\n item.$events.push(event);\n }\n }\n break;\n default:\n break;\n }\n\n def(item, '$item', {\n configurable: true,\n get: () => $item,\n });\n\n if (isUpdate) {\n replaceElement($item, oldItem);\n } else {\n append($panel, $item);\n }\n\n if (item.mounted) {\n setTimeout(() => item.mounted.call(this.art, item.$item, item), 0);\n }\n }\n\n render(option = this.option) {\n this.active = option;\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n inverseClass($panel, 'art-current');\n } else {\n const $panel = createElement('div');\n this.cache.set(option, $panel);\n addClass($panel, 'art-setting-panel');\n append(this.$parent, $panel);\n inverseClass($panel, 'art-current');\n\n if (option[0]?.$parent) {\n this.createHeader(option[0]);\n }\n\n for (let index = 0; index < option.length; index++) {\n this.createItem(option[index]);\n }\n }\n this.resize();\n }\n}\n","import { capitalize } from '../utils';\n\nexport default function flip(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, FLIP },\n } = art;\n\n function getI18n(value) {\n return i18n.get(capitalize(value));\n }\n\n function update() {\n const target = art.setting.find(`flip-${art.flip}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'flip',\n html: i18n.get('Video Flip'),\n tooltip: getI18n(art.flip),\n icon: icons.flip,\n selector: FLIP.map((item) => {\n return {\n value: item,\n name: `flip-${item}`,\n default: item === art.flip,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.flip = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('flip', () => update());\n },\n };\n}\n","export default function aspectRatio(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO },\n } = art;\n\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'aspect-ratio',\n html: i18n.get('Aspect Ratio'),\n icon: icons.aspectRatio,\n tooltip: getI18n(art.aspectRatio),\n selector: ASPECT_RATIO.map((item) => {\n return {\n value: item,\n name: `aspect-ratio-${item}`,\n default: item === art.aspectRatio,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.aspectRatio = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('aspectRatio', () => update());\n },\n };\n}\n","export default function playbackRate(art) {\n const {\n i18n,\n icons,\n constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE },\n } = art;\n\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`);\n art.setting.check(target);\n }\n\n return {\n width: SETTING_ITEM_WIDTH,\n name: 'playback-rate',\n html: i18n.get('Play Speed'),\n tooltip: getI18n(art.playbackRate),\n icon: icons.playbackRate,\n selector: PLAYBACK_RATE.map((item) => {\n return {\n value: item,\n name: `playback-rate-${item}`,\n default: item === art.playbackRate,\n html: getI18n(item),\n };\n }),\n onSelect(item) {\n art.playbackRate = item.value;\n return item.html;\n },\n mounted: () => {\n update();\n art.on('video:ratechange', () => update());\n },\n };\n}\n","export default function subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\n\n return {\n width: constructor.SETTING_ITEM_WIDTH,\n name: 'subtitle-offset',\n html: i18n.get('Subtitle Offset'),\n icon: icons.subtitle,\n tooltip: '0s',\n range: [0, -10, 10, 0.1],\n onChange(item) {\n art.subtitleOffset = item.range[0];\n return item.range[0] + 's';\n },\n mounted: (_, item) => {\n art.on('subtitleOffset', (value) => {\n item.$range.value = value;\n item.tooltip = value + 's';\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 // eslint-disable-next-line no-unused-vars\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 // eslint-disable-next-line no-unused-vars\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 // eslint-disable-next-line no-unused-vars\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clear() {\n try {\n window.localStorage.removeItem(this.name);\n // eslint-disable-next-line no-unused-vars\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 && !option.isLive) {\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.art, this.art);\n if (result instanceof Promise) {\n return result.then((res) => this.next(plugin, res));\n } else {\n return this.next(plugin, result);\n }\n }\n\n next(plugin, result) {\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","import { addClass, removeClass } from '../utils';\n\nexport default function miniProgressBar(art) {\n art.on('control', (state) => {\n if (state) {\n removeClass(art.template.$player, 'art-mini-progress-bar');\n } else {\n addClass(art.template.$player, 'art-mini-progress-bar');\n }\n });\n\n return { name: 'mini-progress-bar' };\n}\n","import { setStyle, addClass, removeClass, hasClass } from '../utils';\n\nexport default function autoOrientation(art) {\n const {\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.isRotate = true;\n art.emit('resize');\n }, constructor.AUTO_ORIENTATION_TIME);\n }\n } else {\n if (hasClass($player, 'art-auto-orientation')) {\n removeClass($player, 'art-auto-orientation');\n art.isRotate = false;\n art.emit('resize');\n }\n }\n });\n\n art.on('fullscreen', async (state) => {\n if (!screen?.orientation?.lock) return;\n\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 proxy,\n template: { $poster },\n } = art;\n\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `,\n });\n\n const $last = query('.art-auto-playback-last', $autoPlayback);\n const $jump = query('.art-auto-playback-jump', $autoPlayback);\n const $close = query('.art-auto-playback-close', $autoPlayback);\n append($close, icons.close);\n\n let timer = null;\n\n art.on('video:timeupdate', () => {\n if (art.playing) {\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.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n\n function init() {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n\n clearTimeout(timer);\n setStyle($autoPlayback, 'display', 'none');\n\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\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.once('video:timeupdate', () => {\n timer = setTimeout(() => {\n setStyle($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n }\n\n art.on('ready', init);\n art.on('restart', init);\n\n return {\n name: 'auto-playback',\n get times() {\n return storage.get('times') || {};\n },\n clear() {\n return storage.del('times');\n },\n delete(id) {\n const times = storage.get('times') || {};\n delete times[id];\n storage.set('times', times);\n return times;\n },\n };\n}\n","import { hasClass, addClass, removeClass } from '../utils';\n\nexport default function fastForward(art) {\n const {\n constructor,\n proxy,\n template: { $player, $video },\n } = art;\n\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n\n const onStart = (event) => {\n if (event.touches.length === 1 && art.playing && !art.isLock) {\n timer = setTimeout(() => {\n isPress = true;\n lastPlaybackRate = art.playbackRate;\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 = lastPlaybackRate;\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 function getState() {\n return hasClass($player, 'art-lock');\n }\n\n function setLock() {\n addClass($player, 'art-lock');\n art.isLock = true;\n art.emit('lock', true);\n }\n\n function setUnlock() {\n removeClass($player, 'art-lock');\n art.isLock = false;\n art.emit('lock', false);\n }\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 (getState()) {\n setUnlock();\n } else {\n setLock();\n }\n },\n });\n\n return {\n name: 'lock',\n get state() {\n return getState();\n },\n set state(value) {\n if (value) {\n setLock();\n } else {\n setUnlock();\n }\n },\n };\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/packages/artplayer/src/index.js b/packages/artplayer/src/index.js index 06cd5e494..7272108bb 100644 --- a/packages/artplayer/src/index.js +++ b/packages/artplayer/src/index.js @@ -82,7 +82,7 @@ export default class Artplayer extends Emitter { } static get version() { - return '"5.2.3"'; + return '"5.2.4"'; } static get env() {